Documentation
¶
Overview ¶
Package handler is for all the application handlers and routing
Index ¶
- func DecoderErr(err error) error
- func NewMuxRouterWithSubroutes() *mux.Router
- func ReadLogger(w http.ResponseWriter, r *http.Request)
- func Routes(rtr *mux.Router, mw Middleware, handlers Handlers)
- func UpdateLogger(w http.ResponseWriter, r *http.Request)
- type CreateMovieHandler
- type DefaultMovieHandlers
- func (h DefaultMovieHandlers) CreateMovie(w http.ResponseWriter, r *http.Request)
- func (h DefaultMovieHandlers) DeleteMovie(w http.ResponseWriter, r *http.Request)
- func (h DefaultMovieHandlers) FindAllMovies(w http.ResponseWriter, r *http.Request)
- func (h DefaultMovieHandlers) FindByID(w http.ResponseWriter, r *http.Request)
- func (h DefaultMovieHandlers) UpdateMovie(w http.ResponseWriter, r *http.Request)
- type DefaultPingHandler
- type DeleteMovieHandler
- type FindAllMoviesHandler
- type FindMovieByIDHandler
- type Handlers
- type Middleware
- func (mw Middleware) AccessTokenHandler(h http.Handler) http.Handler
- func (mw Middleware) AuthorizeUserHandler(h http.Handler) http.Handler
- func (mw Middleware) ConvertAccessTokenHandler(h http.Handler) http.Handler
- func (mw Middleware) CtxWithUserChain() alice.Chain
- func (mw Middleware) DefaultRealmHandler(h http.Handler) http.Handler
- func (mw Middleware) JSONContentTypeResponseHandler(h http.Handler) http.Handler
- func (mw Middleware) LoggerChain() alice.Chain
- type PingHandler
- type ReadLoggerHandler
- type UpdateLoggerHandler
- type UpdateMovieHandler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecoderErr ¶ added in v0.17.0
DecoderErr is a convenience function to handle errors returned by json.NewDecoder(r.Body).Decode(&data) and return the appropriate error response
func NewMuxRouterWithSubroutes ¶ added in v0.29.0
NewMuxRouterWithSubroutes initializes a gorilla/mux router and adds the /api subroute to it
func ReadLogger ¶ added in v0.29.0
func ReadLogger(w http.ResponseWriter, r *http.Request)
ReadLogger handles GET requests for the /logger endpoint
func Routes ¶ added in v0.29.0
func Routes(rtr *mux.Router, mw Middleware, handlers Handlers)
Routes registers routes corresponding middleware/handlers to the given gorilla/mux router
func UpdateLogger ¶ added in v0.29.0
func UpdateLogger(w http.ResponseWriter, r *http.Request)
UpdateLogger handles PUT requests for the /logger endpoint and updates the logger globals
Types ¶
type CreateMovieHandler ¶ added in v0.20.0
CreateMovieHandler is a Handler that creates a Movie
func NewCreateMovieHandler ¶ added in v0.28.0
func NewCreateMovieHandler(h DefaultMovieHandlers) CreateMovieHandler
NewCreateMovieHandler is a provider for CreateMovieHandler
type DefaultMovieHandlers ¶ added in v0.20.0
type DefaultMovieHandlers struct {
RandomStringGenerator random.StringGenerator
Transactor moviestore.Transactor
Selector moviestore.Selector
}
DefaultMovieHandlers are the default handlers for CRUD operations for a Movie. Each method on the struct is a separate handler.
func (DefaultMovieHandlers) CreateMovie ¶ added in v0.20.0
func (h DefaultMovieHandlers) CreateMovie(w http.ResponseWriter, r *http.Request)
CreateMovie is a HandlerFunc used to create a Movie
func (DefaultMovieHandlers) DeleteMovie ¶ added in v0.20.0
func (h DefaultMovieHandlers) DeleteMovie(w http.ResponseWriter, r *http.Request)
DeleteMovie handles DELETE requests for the /movies/{id} endpoint and updates the given movie
func (DefaultMovieHandlers) FindAllMovies ¶ added in v0.20.0
func (h DefaultMovieHandlers) FindAllMovies(w http.ResponseWriter, r *http.Request)
FindAllMovies handles GET requests for the /movies endpoint and finds all movies
func (DefaultMovieHandlers) FindByID ¶ added in v0.20.0
func (h DefaultMovieHandlers) FindByID(w http.ResponseWriter, r *http.Request)
FindByID handles GET requests for the /movies/{id} endpoint and finds a movie by it's ID
func (DefaultMovieHandlers) UpdateMovie ¶ added in v0.20.0
func (h DefaultMovieHandlers) UpdateMovie(w http.ResponseWriter, r *http.Request)
UpdateMovie handles PUT requests for the /movies/{id} endpoint and updates the given movie
type DefaultPingHandler ¶ added in v0.20.0
DefaultPingHandler is a handler to allow for general health checks
func (DefaultPingHandler) Ping ¶ added in v0.20.0
func (h DefaultPingHandler) Ping(w http.ResponseWriter, r *http.Request)
Ping handles GET requests for the /ping endpoint
type DeleteMovieHandler ¶ added in v0.20.0
DeleteMovieHandler is a Handler that deletes a Movie
func NewDeleteMovieHandler ¶ added in v0.28.0
func NewDeleteMovieHandler(h DefaultMovieHandlers) DeleteMovieHandler
NewDeleteMovieHandler is a provider for DeleteMovieHandler
type FindAllMoviesHandler ¶ added in v0.20.0
FindAllMoviesHandler is a Handler that returns the entire set of Movies
func NewFindAllMoviesHandler ¶ added in v0.28.0
func NewFindAllMoviesHandler(h DefaultMovieHandlers) FindAllMoviesHandler
NewFindAllMoviesHandler is a provider for FindAllMoviesHandler
type FindMovieByIDHandler ¶ added in v0.20.0
FindMovieByIDHandler is a Handler finds a Movie by ID
func NewFindMovieByIDHandler ¶ added in v0.28.0
func NewFindMovieByIDHandler(h DefaultMovieHandlers) FindMovieByIDHandler
NewFindMovieByIDHandler is a provider for the FindMovieByIDHandler for wire
type Handlers ¶ added in v0.20.0
type Handlers struct {
PingHandler PingHandler
ReadLoggerHandler ReadLoggerHandler
UpdateLoggerHandler UpdateLoggerHandler
CreateMovieHandler CreateMovieHandler
FindMovieByIDHandler FindMovieByIDHandler
FindAllMoviesHandler FindAllMoviesHandler
UpdateMovieHandler UpdateMovieHandler
DeleteMovieHandler DeleteMovieHandler
}
Handlers is a bundled set of all the application's HTTP handlers
type Middleware ¶ added in v0.28.0
type Middleware struct {
Logger zerolog.Logger
AccessTokenConverter auth.AccessTokenConverter
Authorizer auth.Authorizer
}
Middleware are the collection of app middleware handlers
func (Middleware) AccessTokenHandler ¶ added in v0.29.0
func (mw Middleware) AccessTokenHandler(h http.Handler) http.Handler
AccessTokenHandler middleware is used to pull the Bearer token from the Authorization header and set it to the request context as an auth.AccessToken
func (Middleware) AuthorizeUserHandler ¶ added in v0.29.0
func (mw Middleware) AuthorizeUserHandler(h http.Handler) http.Handler
AuthorizeUserHandler middleware is used authorize a User for a request path and http method
func (Middleware) ConvertAccessTokenHandler ¶ added in v0.29.0
func (mw Middleware) ConvertAccessTokenHandler(h http.Handler) http.Handler
ConvertAccessTokenHandler middleware is used to convert an AccessToken to a User and store the User to the request context
func (Middleware) CtxWithUserChain ¶ added in v0.29.0
func (mw Middleware) CtxWithUserChain() alice.Chain
CtxWithUserChain chains handlers together to set the Realm, Access Token and User to the Context
func (Middleware) DefaultRealmHandler ¶ added in v0.30.0
func (mw Middleware) DefaultRealmHandler(h http.Handler) http.Handler
DefaultRealmHandler middleware is used to set a default Realm to the request context
func (Middleware) JSONContentTypeResponseHandler ¶ added in v0.29.0
func (mw Middleware) JSONContentTypeResponseHandler(h http.Handler) http.Handler
JSONContentTypeResponseHandler middleware is used to add the application/json Content-Type Header for responses
func (Middleware) LoggerChain ¶ added in v0.29.0
func (mw Middleware) LoggerChain() alice.Chain
LoggerChain returns a middleware chain (via alice.Chain) initialized with all the standard middleware handlers for logging. The logger will be added to the request context for subsequent use with pre-populated fields, including the request method, url, status, size, duration, remote IP, user agent, referer. A unique Request ID is also added to the logger, context and response headers.
type PingHandler ¶ added in v0.20.0
PingHandler is a Handler that gives app status, such as db ping, etc.
func NewPingHandler ¶ added in v0.28.0
func NewPingHandler(h DefaultPingHandler) PingHandler
NewPingHandler is a provider for PingHandler
type ReadLoggerHandler ¶ added in v0.28.0
ReadLoggerHandler is a Handler that reads the current state of the app logger
func NewReadLoggerHandler ¶ added in v0.28.0
func NewReadLoggerHandler() ReadLoggerHandler
NewReadLoggerHandler is a provider for ReadLoggerHandler
type UpdateLoggerHandler ¶ added in v0.28.0
UpdateLoggerHandler is a Handler that reads the current state of the app logger
func NewUpdateLoggerHandler ¶ added in v0.28.0
func NewUpdateLoggerHandler() UpdateLoggerHandler
NewUpdateLoggerHandler is a provider for UpdateLoggerHandler
type UpdateMovieHandler ¶ added in v0.20.0
UpdateMovieHandler is a Handler that updates a Movie
func NewUpdateMovieHandler ¶ added in v0.28.0
func NewUpdateMovieHandler(h DefaultMovieHandlers) UpdateMovieHandler
NewUpdateMovieHandler is a provider for UpdateMovieHandler