Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrProductNotFound = fmt.Errorf("Product not found")
ErrProductNotFound is an error raised when a product can not be found in the database
Functions ¶
Types ¶
type Product ¶
type Product struct {
// the id for the product
//
// required: false
// min: 1
ID int `json:"id"` // Unique identifier for the product
// the name for this poduct
//
// required: true
// max length: 255
Name string `json:"name" validate:"required"`
// the description for this poduct
//
// required: false
// max length: 10000
Description string `json:"description"`
// the price for the product
//
// required: true
// min: 0.01
Price float64 `json:"price" validate:"required,gt=0"`
// the SKU for the product
//
// required: true
// pattern: [a-z]+-[a-z]+-[a-z]+
SKU string `json:"sku" validate:"sku"`
}
Product defines the structure for an API product swagger:model
type ProductsDB ¶
type ProductsDB struct {
// contains filtered or unexported fields
}
func NewProductsDB ¶
func NewProductsDB(c protos.CurrencyClient, l hclog.Logger) *ProductsDB
func (*ProductsDB) AddProduct ¶
func (p *ProductsDB) AddProduct(pr Product)
AddProduct adds a new product to the database
func (*ProductsDB) DeleteProduct ¶
func (p *ProductsDB) DeleteProduct(id int) error
DeleteProduct deletes a product from the database
func (*ProductsDB) GetProductByID ¶
func (p *ProductsDB) GetProductByID(id int, currency string) (*Product, error)
GetProductByID returns a single product which matches the id from the database. If a product is not found this function returns a ProductNotFound error
func (*ProductsDB) GetProducts ¶
func (p *ProductsDB) GetProducts(currency string) (Products, error)
GetProducts returns all products from the database
func (*ProductsDB) UpdateProduct ¶
func (p *ProductsDB) UpdateProduct(pr Product) error
UpdateProduct replaces a product in the database with the given item. If a product with the given id does not exist in the database this function returns a ProductNotFound error
type Validation ¶
type Validation struct {
// contains filtered or unexported fields
}
Validation contains
func (*Validation) Validate ¶
func (v *Validation) Validate(i interface{}) ValidationErrors
Validate the item for more detail the returned error can be cast into a validator.ValidationErrors collection
if ve, ok := err.(validator.ValidationErrors); ok {
fmt.Println(ve.Namespace())
fmt.Println(ve.Field())
fmt.Println(ve.StructNamespace())
fmt.Println(ve.StructField())
fmt.Println(ve.Tag())
fmt.Println(ve.ActualTag())
fmt.Println(ve.Kind())
fmt.Println(ve.Type())
fmt.Println(ve.Value())
fmt.Println(ve.Param())
fmt.Println()
}
type ValidationError ¶
type ValidationError struct {
validator.FieldError
}
ValidationError wraps the validators FieldError so we do not expose this to out code
func (ValidationError) Error ¶
func (v ValidationError) Error() string
type ValidationErrors ¶
type ValidationErrors []ValidationError
ValidationErrors is a collection of ValidationError
func (ValidationErrors) Errors ¶
func (v ValidationErrors) Errors() []string
Errors converts the slice into a string slice