admin

package
v0.0.0-...-0ae65ae Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2019 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

Package admin ties together administration resources and handlers.

Index

Constants

This section is empty.

Variables

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

	// 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)}
)
View Source
var (
	ErrAccountValidation = errors.New("account validation error")
)

The list of error types returned from account resource.

Functions

func ErrInvalidRequest

func ErrInvalidRequest(err error) render.Renderer

ErrInvalidRequest returns status 422 Unprocessable Entity including error message.

func ErrRender

func ErrRender(err error) render.Renderer

ErrRender returns status 422 Unprocessable Entity rendering response error.

func ErrValidation

func ErrValidation(err error, valErr validation.Errors) render.Renderer

ErrValidation returns status 422 Unprocessable Entity stating validation errors.

Types

type API

type API struct {
	Accounts *AccountResource
}

API provides admin application resources and handlers.

func NewAPI

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

NewAPI configures and returns admin application API.

func (*API) Router

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

Router provides admin application routes.

type AccountResource

type AccountResource struct {
	Store AccountStore
}

AccountResource implements account management handler.

func NewAccountResource

func NewAccountResource(store AccountStore) *AccountResource

NewAccountResource creates and returns an account resource.

type AccountStore

type AccountStore interface {
	List(*database.AccountFilter) ([]pwdless.Account, int, error)
	Create(*pwdless.Account) error
	Get(id int) (*pwdless.Account, error)
	Update(*pwdless.Account) error
	Delete(*pwdless.Account) error
}

AccountStore defines database operations for account management.

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