models

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 8, 2024 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const SessionCookieName = "session"

Variables

View Source
var (
	ErrInternalServer     = errors.New("internal server error")
	ErrInvalidCredentials = errors.New("invalid credentials")
	ErrForbidden          = errors.New("forbidden")
)

Functions

func FormatCurrency

func FormatCurrency(value int) string

Types

type DashboardData

type DashboardData struct {
	Income         int
	Outcome        int
	Balance        int
	NrTransactions int
	TagBalance     []TagBalance
}

type DbTransaction

type DbTransaction struct {
	Id        int       `db:"id"`
	WalletId  int       `db:"wallet_id"`
	Name      string    `db:"name"`
	Value     int       `db:"value"`
	CreatedAt time.Time `db:"created_at"`

	TagId sql.NullInt32 `db:"tag_id"`
}

func (*DbTransaction) ToModel

func (dt *DbTransaction) ToModel() *Transaction

type ErrInvalidForm

type ErrInvalidForm struct {
	Message string
}

func (*ErrInvalidForm) Error

func (e *ErrInvalidForm) Error() string

type Member

type Member struct {
	Id       int
	Username string
	IsSelf   bool
}
type Navbar struct {
	SelectedWalletId int
	Wallets          []*Wallet
	Username         string
	Title            string
}
type NavbarContext struct {
	SelectedWalletId int
	Wallets          []NavbarWallet

	Username string
}
type NavbarWallet struct {
	Id       int
	Name     string
	Selected bool
}

type Page

type Page struct {
	Page     int
	PageSize int
}

func NewPage

func NewPage(page, pageSize int) *Page

func (*Page) Limit

func (p *Page) Limit() int

func (*Page) Offset

func (p *Page) Offset() int

type PaginatedResponse

type PaginatedResponse[T any] struct {
	Count int
	Data  []T
}

type Session

type Session struct {
	User      *User     `json:"user"`
	ExpiresAt time.Time `json:"expires_at"`
	Signature string    `json:"-"`
}

func SessionFromCookie

func SessionFromCookie(cookie string) (*Session, error)

func (*Session) ToCookie

func (sess *Session) ToCookie() (string, error)

type SettingsContext

type SettingsContext struct {
	Navbar *NavbarContext

	WalletName string
	Members    []*Member
}

type SignInContext

type SignInContext struct {
	Username string
	Password string

	Error string
}

type Tag

type Tag struct {
	Id        int
	WalletId  int `db:"wallet_id"`
	Name      string
	CreatedAt time.Time `db:"created_at"`
}

type TagBalance

type TagBalance struct {
	Tag     *Tag
	Balance int
}

type TagsContext

type TagsContext struct {
	Navbar *NavbarContext

	Tags []*Tag
}

type Transaction

type Transaction struct {
	Id        int
	WalletId  int
	Name      string
	Value     int
	Tag       *Tag
	CreatedAt time.Time
}

func (*Transaction) Render

func (t *Transaction) Render() *TransactionRender

type TransactionRender

type TransactionRender struct {
	Id            int
	Name          string
	Value         string
	FormValue     string
	Type          string
	Tag           *Tag
	FormTagId     string
	CreatedAt     string
	FormCreatedAt string
}

func RenderTransactions

func RenderTransactions(transactions []*Transaction) []*TransactionRender

type TransactionsContext

type TransactionsContext struct {
	Navbar *NavbarContext

	Transactions []*TransactionRender
	Tags         []*Tag
	CurrentPage  int
	TotalPages   int

	UrlParams       string
	PreviousPageUrl string
	NextPageUrl     string
}

type TransactionsListRequest

type TransactionsListRequest struct {
	WalletId int
	Page     *Page
}

type User

type User struct {
	Id        int       `json:"id"`
	Username  string    `json:"username"`
	CreatedAt time.Time `json:"created_at" db:"created_at"`
}

type UserCredentials

type UserCredentials struct {
	User
	Password string
	Salt     string
}

type Wallet

type Wallet struct {
	Id        int
	Name      string
	CreatedAt time.Time `db:"created_at"`
}

type WalletsContext

type WalletsContext struct {
	Navbar *NavbarContext

	Wallets []*Wallet
}

Jump to

Keyboard shortcuts

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