spycat

package
v0.0.0-...-8bfef16 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateHandler

func CreateHandler(logger *slog.Logger, spyCatCreator SpyCatCreator) http.HandlerFunc

func DeleteHandler

func DeleteHandler(logger *slog.Logger, spyCatDeleter SpyCatDeleter) http.HandlerFunc

func GetAllHandler

func GetAllHandler(logger *slog.Logger, spyCatGetter SpyCatsGetter) http.HandlerFunc

func GetOneHandler

func GetOneHandler(logger *slog.Logger, spyCatGetter SpyCatGetter) http.HandlerFunc

func PatchHandler

func PatchHandler(logger *slog.Logger, spyCatUpdater SpyCatUpdater) http.HandlerFunc

Types

type CreateRequest

type CreateRequest struct {
	Name              string  `json:"name" validate:"required,min=1,max=100"`
	YearsOfExperience int     `json:"years_of_experience" validate:"min=0"`
	Breed             string  `json:"breed" validate:"required,min=1,max=100"`
	Salary            float64 `json:"salary" validate:"required,gt=0"`
}

type CreateResponse

type CreateResponse struct {
	ID int64 `json:"id,omitempty"`
}

type GetAllResponse

type GetAllResponse struct {
	Cats []SpyCat `json:"cats"`
}

type GetOneResponse

type GetOneResponse struct {
	Cat *SpyCat `json:"cat,omitempty"`
}

type PatchRequest

type PatchRequest struct {
	Salary float64 `json:"salary" validate:"required,gt=0"`
}

type SpyCat

type SpyCat struct {
	ID                int64   `json:"id"`
	Name              string  `json:"name"`
	YearsOfExperience int     `json:"years_of_experience"`
	Breed             string  `json:"breed"`
	Salary            float64 `json:"salary"`
}

type SpyCatCreator

type SpyCatCreator interface {
	CreateCat(name string, yearsOfExperience int, breed string, salary float64) (int64, error)
}

type SpyCatDeleter

type SpyCatDeleter interface {
	DeleteCat(id int64) error
	CatExists(id int64) (bool, error)
}

type SpyCatGetter

type SpyCatGetter interface {
	GetCatByID(id int64) (*SpyCat, error)
	CatExists(id int64) (bool, error)
}

type SpyCatUpdater

type SpyCatUpdater interface {
	UpdateCatSalary(id int64, salary float64) error
	CatExists(id int64) (bool, error)
}

type SpyCatsGetter

type SpyCatsGetter interface {
	GetAllCats() ([]SpyCat, error)
}

Jump to

Keyboard shortcuts

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