server

package
v0.0.0-...-62b828e Latest Latest
Warning

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

Go to latest
Published: May 5, 2024 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	APITree    = "/tree"
	APIDisplay = "/display"
	APIAccount = "/account"
	APICreate  = "/create"
)
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"
	MessageAccount          = "Account"
	MessageCommandResponse  = "CommandResponse"
	MessageGetTree          = "GetState"
	MessageTree             = "State"
	MessageWebServerError   = "WebServerError"
	MessageAuthenticateUser = "AuthenticateUser"
	MessageUser             = "UserWithSecret"
	MessageCreateUser       = "CreateUser"
	MessageCreate           = "Create"
	MessageGetDisplay       = "GetDetail"
	MessageDisplay
)
View Source
const (
	NodeRoot = iota
	NodeUser
	NodeAccount
	NodeBroker
	NodeGroup
	NodePocket
)
View Source
const (
	StatusActive = iota
	StatusDisabled
)
View Source
const (
	AuthLogin  = "/login"
	AuthSignup = "/signup"
)
View Source
const (
	RoleUser = "user"
)

Variables

View Source
var Assets = map[string]Asset{
	"usd": {1, "USD", "USA Dollar"},
	"eur": {2, "EUR", "Euro"},
	"btc": {3, "BTC", "Bitcoin"},
	"eth": {4, "ETH", "Ethereum"},
	"ada": {5, "ADA", "Cardano"},
}
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) (err error)

Types

type APIError

type APIError struct {
	Error string
}

type Account

type Account struct {
	DetailModel
	Exchange      string
	APIPublicKey  string
	APIPrivateKey string
}

func (*Account) DisplayData

func (acc *Account) DisplayData() (display gin.H)

type Asset

type Asset struct {
	ID     int
	Symbol string
	Name   string
}

type Broker

type Broker struct {
	DetailModel

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

func (*Broker) DisplayData

func (bro *Broker) DisplayData() (display gin.H)

type Checkpoint

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

type Claims

type Claims struct {
	jwt.StandardClaims
	Role string
}

type Core

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

func (*Core) ParseToken

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

type DetailModel

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

type Displayer

type Displayer interface {
	DisplayData() gin.H
}

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 ErrorPayload

type ErrorPayload struct {
	Status int
	Error  string
}

type Group

type Group struct {
	DetailModel
}

func (*Group) DisplayData

func (group *Group) DisplayData() (display gin.H)

type LoginResp

type LoginResp struct {
	Success bool
	Message string
}

type Message

type Message struct {
	Type    string
	User    *User
	Path    string
	Payload interface{}
	// contains filtered or unexported fields
}

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 Displayer `gorm:"-:all"`
	// contains filtered or unexported fields
}

type Pocket

type Pocket struct {
	DetailModel
	Holdings map[Asset]float64
	// contains filtered or unexported fields
}

func (*Pocket) DisplayData

func (pocket *Pocket) DisplayData() (display gin.H)

type Setting

type Setting struct {
	Name  string
	Value interface{}
}

type Settings

type Settings struct {
	LogLevel      string
	WorkDir       string
	HTTPAddr      string
	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
}

func (*User) DisplayData

func (user *User) DisplayData() (detail gin.H)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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