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 ¶
func DeleteProduct ¶
DeleteProduct deletes a product from the database
func FromJSON ¶
FromJSON deserializes the object from JSON string in an io.Reader to the given interface
func UpdateProduct ¶
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
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 product // // required: true // min length: 1 Name string `json:"name" validate:"required"` // the description of the product // // required: false // max length: 1000 Description string `json:"description"` // the price of the product // // required: true // min: 0.01 // max: 10.00 Price float32 `json:"price" validate:"required,gt=0"` // the unique stock keeping unit (SKU) for the product // // required: true // pattern: [a-z0-9]+\-[a-z0-9]+\-[a-z0-9] // example: abc-123-b4d SKU string `json:"sku" validate:"sku"` }
Product defines the structure for an API product swagger:model
func GetProductByID ¶
GetProductByID returns a single product which matches the id from the database. If a product is not found 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