data

package
Version: v0.0.0-...-9c35b0d Latest Latest
Warning

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

Go to latest
Published: Dec 8, 2020 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrProductNotFound = fmt.Errorf("Product not found")

ErrProductNotFound is an error raised when a product can not be found in the database

Functions

func AddProduct

func AddProduct(p Product)

AddProduct adds a new product to the database

func DeleteProduct

func DeleteProduct(id int) error

DeleteProduct deletes a product from the database

func FromJSON

func FromJSON(i interface{}, r io.Reader) error

FromJSON deserializes the object from JSON string in an io.Reader to the given interface

func ToJSON

func ToJSON(i interface{}, w io.Writer) error

ToJSON serializes the given interface into a string based JSON format

func UpdateProduct

func UpdateProduct(p 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

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 float32 `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

func GetProductByID

func GetProductByID(id int) (*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

type Products

type Products []*Product

Products defines a slice of Product

func GetProducts

func GetProducts() Products

GetProducts returns all products from the database

type Validation

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

Validation contains

func NewValidation

func NewValidation() *Validation

NewValidation creates a new Validation type

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL