Documentation
¶
Index ¶
- Constants
- Variables
- func AddCreateHandler(config cfg.Config, logger log.Logger, d *httpserver.Definitions, version int, ...) error
- func AddCrudHandlers(config cfg.Config, logger log.Logger, d *httpserver.Definitions, version int, ...) error
- func AddDeleteHandler(config cfg.Config, logger log.Logger, d *httpserver.Definitions, version int, ...) error
- func AddListHandler(config cfg.Config, logger log.Logger, d *httpserver.Definitions, version int, ...)
- func AddReadHandler(config cfg.Config, logger log.Logger, d *httpserver.Definitions, version int, ...)
- func AddUpdateHandler(config cfg.Config, logger log.Logger, d *httpserver.Definitions, version int, ...) error
- func GetApiViewFromHeader(reqHeaders http.Header) string
- func HandleErrorOnRead(ctx context.Context, logger log.Logger, err error) (*httpserver.Response, error)
- func HandleErrorOnWrite(ctx context.Context, logger log.Logger, err error) (*httpserver.Response, error)
- func NewCreateHandler(config cfg.Config, logger log.Logger, transformer CreateHandler) (gin.HandlerFunc, error)
- func NewDeleteHandler(config cfg.Config, logger log.Logger, transformer BaseHandler) (gin.HandlerFunc, error)
- func NewListHandler(_ cfg.Config, logger log.Logger, transformer ListHandler) gin.HandlerFunc
- func NewReadHandler(_ cfg.Config, logger log.Logger, transformer BaseHandler) gin.HandlerFunc
- func NewUpdateHandler(config cfg.Config, logger log.Logger, transformer UpdateHandler) (gin.HandlerFunc, error)
- type BaseCreateHandler
- type BaseHandler
- type BaseListHandler
- type BaseUpdateHandler
- type CreateHandler
- type Handler
- type ListHandler
- type Output
- type Repository
- type Settings
- type UpdateHandler
Constants ¶
View Source
const ( SettingsConfigKey = "crud" DefaultApiView = "api" )
Variables ¶
View Source
var ErrModelNotChanged = fmt.Errorf("nothing has changed on model")
Functions ¶
func AddCreateHandler ¶
func AddCreateHandler(config cfg.Config, logger log.Logger, d *httpserver.Definitions, version int, basePath string, handler CreateHandler) error
func AddCrudHandlers ¶
func AddCrudHandlers(config cfg.Config, logger log.Logger, d *httpserver.Definitions, version int, basePath string, handler Handler) error
func AddDeleteHandler ¶
func AddDeleteHandler(config cfg.Config, logger log.Logger, d *httpserver.Definitions, version int, basePath string, handler BaseHandler) error
func AddListHandler ¶
func AddListHandler(config cfg.Config, logger log.Logger, d *httpserver.Definitions, version int, basePath string, handler ListHandler)
func AddReadHandler ¶
func AddReadHandler(config cfg.Config, logger log.Logger, d *httpserver.Definitions, version int, basePath string, handler BaseHandler)
func AddUpdateHandler ¶
func AddUpdateHandler(config cfg.Config, logger log.Logger, d *httpserver.Definitions, version int, basePath string, handler UpdateHandler) error
func GetApiViewFromHeader ¶
func HandleErrorOnRead ¶ added in v0.38.1
func HandleErrorOnRead(ctx context.Context, logger log.Logger, err error) (*httpserver.Response, error)
HandleErrorOnRead handles errors for read operations. Covers many default errors and responses like
- context.Canceled, context.DeadlineExceed -> HTTP 499
- dbRepo.RecordNotFoundError | dbRepo.NoQueryResultsError -> HTTP 404
func HandleErrorOnWrite ¶ added in v0.38.1
func HandleErrorOnWrite(ctx context.Context, logger log.Logger, err error) (*httpserver.Response, error)
HandleErrorOnWrite handles errors for write operations. Covers many default errors and responses like
- context.Canceled, context.DeadlineExceed -> HTTP 500
- dbRepo.RecordNotFoundError | dbRepo.NoQueryResultsError -> HTTP 404
- ErrModelNotChanged -> HTTP 304
- db.IsDuplicateEntryError -> HTTP 409
func NewCreateHandler ¶
func NewCreateHandler(config cfg.Config, logger log.Logger, transformer CreateHandler) (gin.HandlerFunc, error)
func NewDeleteHandler ¶
func NewDeleteHandler(config cfg.Config, logger log.Logger, transformer BaseHandler) (gin.HandlerFunc, error)
func NewListHandler ¶
func NewListHandler(_ cfg.Config, logger log.Logger, transformer ListHandler) gin.HandlerFunc
func NewReadHandler ¶
func NewReadHandler(_ cfg.Config, logger log.Logger, transformer BaseHandler) gin.HandlerFunc
func NewUpdateHandler ¶
func NewUpdateHandler(config cfg.Config, logger log.Logger, transformer UpdateHandler) (gin.HandlerFunc, error)
Types ¶
type BaseCreateHandler ¶
type BaseHandler ¶
type BaseHandler interface {
GetRepository() Repository
GetModel() dbRepo.ModelBased
TransformOutput(ctx context.Context, model dbRepo.ModelBased, apiView string) (output any, err error)
}
type BaseListHandler ¶
type BaseUpdateHandler ¶
type CreateHandler ¶
type CreateHandler interface {
BaseHandler
BaseCreateHandler
}
type Handler ¶
type Handler interface {
BaseHandler
BaseCreateHandler
BaseUpdateHandler
BaseListHandler
}
type ListHandler ¶
type ListHandler interface {
BaseHandler
BaseListHandler
}
type Repository ¶
type Repository interface {
Create(ctx context.Context, value dbRepo.ModelBased) error
Read(ctx context.Context, id *uint, out dbRepo.ModelBased) error
Update(ctx context.Context, value dbRepo.ModelBased) error
Delete(ctx context.Context, value dbRepo.ModelBased) error
Query(ctx context.Context, qb *dbRepo.QueryBuilder, result any) error
Count(ctx context.Context, qb *dbRepo.QueryBuilder, model dbRepo.ModelBased) (int, error)
GetMetadata() dbRepo.Metadata
}
type Settings ¶ added in v0.29.1
type Settings struct {
// Applies to create, update and delete handlers.
// Write timeout is the maximum duration before canceling any write operation.
WriteTimeout time.Duration `cfg:"write_timeout" default:"10m" validate:"min=1000000000"`
}
Settings structure for all CRUDL handler.
type UpdateHandler ¶
type UpdateHandler interface {
BaseHandler
BaseUpdateHandler
}
Click to show internal directories.
Click to hide internal directories.