storage

package
v0.0.0-...-363facf Latest Latest
Warning

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

Go to latest
Published: Apr 14, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Name               string        `env:"DB_NAME" json:",omitempty"`
	User               string        `env:"DB_USER" json:",omitempty"`
	Host               string        `env:"DB_HOST, default=localhost" json:",omitempty"`
	Port               string        `env:"DB_PORT, default=5432" json:",omitempty"`
	SSLMode            string        `env:"DB_SSLMODE, default=require" json:",omitempty"`
	ConnectionTimeout  int           `env:"DB_CONNECT_TIMEOUT" json:",omitempty"`
	Password           string        `env:"DB_PASSWORD" json:"-"` // ignored by zap's JSON formatter
	SSLCertPath        string        `env:"DB_SSLCERT" json:",omitempty"`
	SSLKeyPath         string        `env:"DB_SSLKEY" json:",omitempty"`
	SSLRootCertPath    string        `env:"DB_SSLROOTCERT" json:",omitempty"`
	PoolMinConnections string        `env:"DB_POOL_MIN_CONNS" json:",omitempty"`
	PoolMaxConnections string        `env:"DB_POOL_MAX_CONNS" json:",omitempty"`
	PoolMaxConnLife    time.Duration `env:"DB_POOL_MAX_CONN_LIFETIME, default=5m" json:",omitempty"`
	PoolMaxConnIdle    time.Duration `env:"DB_POOL_MAX_CONN_IDLE_TIME, default=1m" json:",omitempty"`
	PoolHealthCheck    time.Duration `env:"DB_POOL_HEALTH_CHECK_PERIOD, default=1m" json:",omitempty"`
}

type DuplicatedEntryError

type DuplicatedEntryError struct {
	Field string
}

func (DuplicatedEntryError) Error

func (e DuplicatedEntryError) Error() string

type NotFoundError

type NotFoundError struct {
	Field string
}

func (NotFoundError) Error

func (e NotFoundError) Error() string

type Repository

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

func NewRepository

func NewRepository(ctx context.Context, config *Config) (*Repository, error)

NewRepository sets up the database connections using the configuration in the process's environment variables. This should be called just once per port instance.

func (*Repository) AddBalanceAccount

func (r *Repository) AddBalanceAccount(ctx context.Context, account domain.BalanceAccount) (domain.BalanceAccount, error)

func (*Repository) AddIdemEntry

func (r *Repository) AddIdemEntry(ctx context.Context, id uint64, idemId string) error

func (*Repository) AddRootAccount

func (r *Repository) AddRootAccount(ctx context.Context, account domain.RootAccount) (domain.RootAccount, error)

func (*Repository) AddTransaction

func (r *Repository) AddTransaction(ctx context.Context, transaction domain.Transaction) (domain.Transaction, error)

func (*Repository) AddUser

func (r *Repository) AddUser(ctx context.Context, user userpkg.User) (userpkg.User, error)

func (*Repository) DB

func (r *Repository) DB(ctx context.Context) *gorm.DB

func (*Repository) GetBalanceAccount

func (r *Repository) GetBalanceAccount(ctx context.Context, accountID uint64) (domain.BalanceAccount, error)

func (*Repository) GetBalanceAccountByRootAccountIDAndType

func (r *Repository) GetBalanceAccountByRootAccountIDAndType(ctx context.Context, rootAccountID uint64, accountType domain.BalanceAccountType) (domain.BalanceAccount, error)

func (*Repository) GetBalanceAccountsByRootAccountIDAndVisible

func (r *Repository) GetBalanceAccountsByRootAccountIDAndVisible(ctx context.Context, rootAccountID uint64, visible bool) ([]domain.BalanceAccount, error)

func (*Repository) GetRootAccountByUserID

func (r *Repository) GetRootAccountByUserID(ctx context.Context, userID uint64) (domain.RootAccount, error)

func (*Repository) GetTransactionByParentID

func (r *Repository) GetTransactionByParentID(ctx context.Context, parentID uint64) (domain.Transaction, error)

func (*Repository) GetTransactionByUserID

func (r *Repository) GetTransactionByUserID(ctx context.Context, userID uint64) ([]domain.Transaction, error)

FixMe: Temporary for demo, delete later

func (*Repository) GetUser

func (r *Repository) GetUser(ctx context.Context, userID uint64) (userpkg.User, error)

func (*Repository) TxnExec

func (r *Repository) TxnExec(ctx context.Context, f func(ctxWithTxn context.Context) (interface{}, error)) (interface{}, error)

func (*Repository) UpdateBalanceAccount

func (r *Repository) UpdateBalanceAccount(ctx context.Context, account domain.BalanceAccount) (domain.BalanceAccount, error)

func (*Repository) UpdateIdemEntry

func (r *Repository) UpdateIdemEntry(ctx context.Context, idemId string, response interface{}) error

func (*Repository) UpdateUser

func (r *Repository) UpdateUser(ctx context.Context, user userpkg.User) (userpkg.User, error)

Jump to

Keyboard shortcuts

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