Version: v0.0.0-...-6bf1803 Latest Latest

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

Go to latest
Published: Nov 17, 2020 License: Apache-2.0 Imports: 6 Imported by: 0




This section is empty.


This section is empty.


func LoadSeeds

func LoadSeeds(seed io.Reader, db UnderlyingStore) error

LoadSeeds write the seed information to the DB.


type Product

type Product struct {
	ID    uint   `json:"ID"`
	Name  string `json:"Name"`
	Price uint   `json:"Price"`
	Stock uint   `json:"Stock"`

Product models a shop product

func (*Product) DecreaseStock

func (p *Product) DecreaseStock(quantity uint) error

DecreaseStock decreases the quantity of an item if sufficient

func (*Product) GetPrice

func (p *Product) GetPrice() uint

GetPrice returns the amount of this product left in stock

func (*Product) GetStock

func (p *Product) GetStock() uint

GetStock returns the amount of this product left in stock

func (*Product) HasStock

func (p *Product) HasStock(quantity uint) bool

HasStock returns true is the stock is higher or equal to the requeted amount

func (*Product) IncreaseStock

func (p *Product) IncreaseStock(quantity uint)

IncreaseStock adds the given quantity to the stock o

func (*Product) Validate

func (p *Product) Validate() error

Validate checks that a user adheres to constraints

type ProductStore

type ProductStore interface {
	GetProductByID(ID uint) (*Product, error)
	SetProducts(products ...*Product) (*ProductTransaction, error)

ProductStore models the Product DB

func New

func New(log logger, db UnderlyingStore) ProductStore

New returns a new instance of ProductStore

type ProductTable

type ProductTable struct {
	// contains filtered or unexported fields

ProductTable represents the product table in the DB

func GetTable

func GetTable() *ProductTable

GetTable returns the product schema

func (*ProductTable) GetName

func (u *ProductTable) GetName() string

GetName return the name of the product table

func (*ProductTable) GetTableSchema

func (u *ProductTable) GetTableSchema() *memdb.TableSchema

GetTableSchema returns the schema for the products table

type ProductTransaction

type ProductTransaction struct {
	// contains filtered or unexported fields

ProductTransaction is used to externalize transactions

func (*ProductTransaction) Abort

func (r *ProductTransaction) Abort()

Abort is used to cancel this transaction

func (*ProductTransaction) Commit

func (r *ProductTransaction) Commit()

Commit is used to finalyze this transaction

func (*ProductTransaction) Write

func (r *ProductTransaction) Write(product *Product) error

Write inserts intp storace

type UnderlyingStore

type UnderlyingStore interface {
	Read(table string, key string, value interface{}) (interface{}, error)
	Write(table string, value ...interface{}) error
	WriteAndBlock(table string, value ...interface{}) (store.Transaction, error)

UnderlyingStore represents the interface that the DB should implement to be usable

type Validatable

type Validatable interface {
	Validate() error

Validatable is an item which has to adhere to certain convetions and knows how to check that it is correct


Path Synopsis
Package mock_store is a generated GoMock package.
Package mock_store is a generated GoMock package.

Jump to

Keyboard shortcuts

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