server

package
v0.0.0-...-c616022 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 4, 2024 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	APIAccount = "/account"
	APITree    = "/tree"
	APIDetail  = "/detail"
)
View Source
const (
	CLIAgentID = "Geronimo CLI"

	NameStateDB   = "state.db"
	NameJWTKey    = "jwt-key"
	NameDBKey     = "db-key"
	NameCLICookie = "cli-cookie"

	ExiprationMins = 60

	GeronimoClientID = "Geronimo-Client-ID"
)
View Source
const (
	MessageOK               = "OK"
	MessageError            = "Error"
	MessageClientID         = "ClientID"
	MessageCreateAccount    = "CreateAccount"
	MessageAccount          = "Account"
	MessageCommandResponse  = "CommandResponse"
	MessageGetState         = "GetState"
	MessageState            = "State"
	MessageWebServerError   = "WebServerError"
	MessageAuthenticateUser = "AuthenticateUser"
	MessageUser             = "UserWithSecret"
	MessageCreateUser       = "CreateUser"
)
View Source
const (
	NodeRoot = iota
	NodeUser
	NodeAccount
	NodeBroker
)
View Source
const (
	StatusActive = iota
	StatusDisabled
)
View Source
const (
	AuthLogin  = "/login"
	AuthSignup = "/signup"
)
View Source
const (
	RoleUser = "user"
)

Variables

View Source
var StatusKinds = map[string]uint{
	"active":   StatusActive,
	"disabled": StatusDisabled,
}

Functions

func FileExists

func FileExists(fn string) bool

func Init

func Init(s Settings) (err error)

func Serve

func Serve(s Settings) error

Types

type APIError

type APIError struct {
	Error string
}

type Account

type Account struct {
	DetailModel
	APIPublicKey  string
	APIPrivateKey string
}

type Broker

type Broker struct {
	DetailModel
	AccountID uint

	Name      string
	Pair      string
	Status    string
	MinWait   float64
	MaxWait   float64
	HighLimit float64
	LowLimit  float64
	Delta     float64
	Offset    float64
	Base      float64
	Quote     float64
	Fee       float64
	// contains filtered or unexported fields
}

type Checkpoint

type Checkpoint struct {
	ID        uint
	CreatedAt time.Time
	BrokerID  uint
	Price     float64
}

type Claims

type Claims struct {
	jwt.StandardClaims
	Role string
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(c *Core, conn *websocket.Conn, id int64) *Client

type Core

type Core struct {
	// contains filtered or unexported fields
}

func (*Core) ParseToken

func (core *Core) ParseToken(tokenString string) (claims *Claims, err error)

func (*Core) Run

func (c *Core) Run() (err error)

type Detail

type Detail interface{}

Details are only created, so the newest detail is always the current one. Because of this references to tree nodes are stored in the detail struct.

type DetailModel

type DetailModel struct {
	ID        uint
	NodeID    uint
	CreatedAt time.Time `gorm:"index"`
	Status    uint
}

type ErrorPayload

type ErrorPayload struct {
	Status int
	Error  string
}

type LoginResp

type LoginResp struct {
	Success bool
	Message string
}

type Message

type Message struct {
	Type      string
	Payload   interface{} `json:"-"`
	JSPayload json.RawMessage

	RespChan chan *Message `json:"-"`
}

func ReceiveWSMessage

func ReceiveWSMessage(conn *websocket.Conn) (msg *Message, err error)

func (*Message) SendWSMessage

func (msg *Message) SendWSMessage(conn *websocket.Conn) (err error)

type Node

type Node struct {
	gorm.Model
	DetailType uint
	Name       string `gorm:"UNIQUE_INDEX:unique_name_per_tnode"`
	ParentID   uint   `gorm:"UNIQUE_INDEX:unique_name_per_tnode"`

	Detail Detail `gorm:"-:all"`
	// contains filtered or unexported fields
}

type Settings

type Settings struct {
	LogLevel      string `short:"l" long:"log-level" description:"logging level" default:"debug" choice:"info" choice:"debug"`
	WorkDir       string `short:"w" long:"work-dir" description:"work directory" default-mask:"$HOME/.config/Geronimo"`
	HTTPAddr      string `short:"A" long:"http-address" description:"http address" default:"localhost:8088"`
	UserEmail     string `short:"u" long:"user-email" description:"user email address"`
	UserPassword  string `short:"p" long:"user-password" description:"user password"`
	WSAddr        string
	DBPath        string
	JWTKeyPath    string
	DBKeyPath     string
	CLICookiePath string
}

func (*Settings) Init

func (s *Settings) Init()

type User

type User struct {
	DetailModel
	Email    string `gorm:"unique"`
	Role     string
	Password string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL