app

package
v0.0.0-...-3f96ca5 Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2022 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package app ties together application resources and handlers.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrBadRequest returns status 400 Bad Request for malformed request body.
	ErrBadRequest = &ErrResponse{HTTPStatusCode: http.StatusBadRequest, StatusText: http.StatusText(http.StatusBadRequest)}

	// ErrUnauthorized returns 401 Unauthorized.
	ErrUnauthorized = &ErrResponse{HTTPStatusCode: http.StatusUnauthorized, StatusText: http.StatusText(http.StatusUnauthorized)}

	// ErrForbidden returns status 403 Forbidden for unauthorized request.
	ErrForbidden = &ErrResponse{HTTPStatusCode: http.StatusForbidden, StatusText: http.StatusText(http.StatusForbidden)}

	// ErrNotFound returns status 404 Not Found for invalid resource request.
	ErrNotFound = &ErrResponse{HTTPStatusCode: http.StatusNotFound, StatusText: http.StatusText(http.StatusNotFound)}

	// ErrInternalServerError returns status 500 Internal Server Error.
	ErrInternalServerError = &ErrResponse{HTTPStatusCode: http.StatusInternalServerError, StatusText: http.StatusText(http.StatusInternalServerError)}
)

Functions

func ErrRender

func ErrRender(err error) render.Renderer

ErrRender returns status 422 Unprocessable Entity rendering response error.

Types

type API

type API struct {
	Driver *DriverResource
}

API provides application resources and handlers.

func NewAPI

func NewAPI(db *pg.DB) (*API, error)

NewAPI configures and returns application API.

func (*API) Router

func (a *API) Router() *chi.Mux

Router provides application routes.

type DriverRequest

type DriverRequest struct {
	*models.Driver
}

func (*DriverRequest) Bind

func (d *DriverRequest) Bind(r *http.Request) error

type DriverResource

type DriverResource struct {
	Store DriverStore
}

DriverResource implements Driver management handler.

func NewDriverResource

func NewDriverResource(store DriverStore) *DriverResource

NewDriverResource creates and returns a Driver resource.

type DriverResponse

type DriverResponse struct {
	*models.Driver
}

type DriverStore

type DriverStore interface {
	Get(driverID int) (*models.Driver, error)
	Create(d *models.Driver) error
}

DriverStore defines database operations for a Driver.

type ErrResponse

type ErrResponse struct {
	Err            error `json:"-"` // low-level runtime error
	HTTPStatusCode int   `json:"-"` // http response status code

	StatusText       string            `json:"status"`           // user-level status message
	AppCode          int64             `json:"code,omitempty"`   // application-specific error code
	ErrorText        string            `json:"error,omitempty"`  // application-level error message, for debugging
	ValidationErrors validation.Errors `json:"errors,omitempty"` // user level model validation errors
}

ErrResponse renderer type for handling all sorts of errors.

func (*ErrResponse) Render

func (e *ErrResponse) Render(w http.ResponseWriter, r *http.Request) error

Render sets the application-specific error code in AppCode.

Jump to

Keyboard shortcuts

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