Documentation ¶
Index ¶
- Variables
- func MakeCountEndpoint(s Service) endpoint.Endpoint
- func MakeGetEndpoint(s Service) endpoint.Endpoint
- func MakeHTTPHandler(ctx context.Context, e Endpoints, imagePath string, logger log.Logger, ...) *mux.Router
- func MakeHealthEndpoint(s Service) endpoint.Endpoint
- func MakeListEndpoint(s Service) endpoint.Endpoint
- func MakeTagsEndpoint(s Service) endpoint.Endpoint
- type Endpoints
- type Health
- type Middleware
- type Service
- type Sock
Constants ¶
This section is empty.
Variables ¶
var ErrDBConnection = errors.New("database connection error")
ErrDBConnection is returned when connection with the database fails.
var ErrNotFound = errors.New("not found")
ErrNotFound is returned when there is no sock for a given ID.
Functions ¶
func MakeCountEndpoint ¶
MakeCountEndpoint returns an endpoint via the given service.
func MakeGetEndpoint ¶
MakeGetEndpoint returns an endpoint via the given service.
func MakeHTTPHandler ¶
func MakeHTTPHandler(ctx context.Context, e Endpoints, imagePath string, logger log.Logger, tracer stdopentracing.Tracer) *mux.Router
MakeHTTPHandler mounts the endpoints into a REST-y HTTP handler.
func MakeHealthEndpoint ¶
MakeHealthEndpoint returns current health of the given service.
func MakeListEndpoint ¶
MakeListEndpoint returns an endpoint via the given service.
func MakeTagsEndpoint ¶
MakeTagsEndpoint returns an endpoint via the given service.
Types ¶
type Endpoints ¶
type Endpoints struct { ListEndpoint endpoint.Endpoint CountEndpoint endpoint.Endpoint GetEndpoint endpoint.Endpoint TagsEndpoint endpoint.Endpoint HealthEndpoint endpoint.Endpoint }
Endpoints collects the endpoints that comprise the Service.
func MakeEndpoints ¶
func MakeEndpoints(s Service, tracer stdopentracing.Tracer) Endpoints
MakeEndpoints returns an Endpoints structure, where each endpoint is backed by the given service.
type Health ¶
type Health struct { Service string `json:"service"` Status string `json:"status"` Time string `json:"time"` }
Health describes the health of a service
type Middleware ¶
Middleware decorates a Service.
func LoggingMiddleware ¶
func LoggingMiddleware(logger log.Logger) Middleware
LoggingMiddleware logs method calls, parameters, results, and elapsed time.
type Service ¶
type Service interface { List(tags []string, order string, pageNum, pageSize int) ([]Sock, error) // GET /catalogue Count(tags []string) (int, error) // GET /catalogue/size Get(id string) (Sock, error) // GET /catalogue/{id} Tags() ([]string, error) // GET /tags Health() []Health // GET /health }
Service is the catalogue service, providing read operations on a saleable catalogue of sock products.
type Sock ¶
type Sock struct { ID string `json:"id" db:"id"` Name string `json:"name" db:"name"` Description string `json:"description" db:"description"` ImageURL []string `json:"imageUrl" db:"-"` ImageURL_1 string `json:"-" db:"image_url_1"` ImageURL_2 string `json:"-" db:"image_url_2"` Price float32 `json:"price" db:"price"` Count int `json:"count" db:"count"` Tags []string `json:"tag" db:"-"` TagString string `json:"-" db:"tag_name"` }
Sock describes the thing on offer in the catalogue.