views

package
v0.0.0-...-a2ff9df Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2024 License: MIT Imports: 19 Imported by: 0

Documentation

Overview

Package views provides a set of functions that can be used to create views for models.

Index

Constants

View Source
const (
	ActionCreate = iota
	ActionUpdate
	ActionDestroy
	ActionList
	ActionRetrieve
)

Variables

This section is empty.

Functions

func CreateModelViewSetFunc

func CreateModelViewSetFunc[Model any](idf IDFunc, qd queries.Driver[Model], serializer serializers.Serializer) gin.HandlerFunc

CreateModelFunc is a function that creates a new model

func DestroyModelViewSetFunc

func DestroyModelViewSetFunc[Model any](idf IDFunc, qd queries.Driver[Model], serializer serializers.Serializer) gin.HandlerFunc

func IDFromPathParam

func IDFromPathParam(paramName string) func(ctx *gin.Context) string

func IDFromQueryParamIDFunc

func IDFromQueryParamIDFunc(ctx *gin.Context) string

func ListModelViewSetFunc

func ListModelViewSetFunc[Model any](idf IDFunc, qd queries.Driver[Model], serializer serializers.Serializer) gin.HandlerFunc

ListModelFunc is a gin handler function that lists model instances

func RetrieveModelViewSetFunc

func RetrieveModelViewSetFunc[Model any](idf IDFunc, qd queries.Driver[Model], serializer serializers.Serializer) gin.HandlerFunc

func UpdateModelViewSetFunc

func UpdateModelViewSetFunc[Model any](idf IDFunc, qd queries.Driver[Model], serializer serializers.Serializer) gin.HandlerFunc

func WriteError

func WriteError(ctx *gin.Context, err error)

WriteError checks for common error types and maps them to correct HTTP status codes

Types

type ActionID

type ActionID int

type ExtraAction

type ExtraAction[Model any] struct {
	Method       string
	RelativePath string
	Handler      ViewSetHandlerFunc[Model]
}

func NewExtraAction

func NewExtraAction[Model any](method string, relativePath string, handler ViewSetHandlerFunc[Model]) *ExtraAction[Model]

type IDFunc

type IDFunc func(*gin.Context) string

type View

type View struct {
	// contains filtered or unexported fields
}

func NewView

func NewView[Model any](path string, queryDriver queries.Driver[Model]) *View

func (*View) AddMiddleware

func (v *View) AddMiddleware(m ...gin.HandlerFunc) *View

func (*View) Delete

func (v *View) Delete(h func(*gin.Context)) *View

func (*View) Get

func (v *View) Get(h func(*gin.Context)) *View

func (*View) Patch

func (v *View) Patch(h func(*gin.Context)) *View

func (*View) Post

func (v *View) Post(h func(*gin.Context)) *View

func (*View) Put

func (v *View) Put(h func(*gin.Context)) *View

func (*View) Register

func (v *View) Register(r *gin.Engine)

func (*View) WithRoute

func (v *View) WithRoute(
	route *ViewRoute,
) *View

type ViewRoute

type ViewRoute struct {
	Method       string
	RelativePath string
	Handler      func(*gin.Context)
}

type ViewSet

type ViewSet[Model any] struct {
	Path        string
	IDFunc      IDFunc
	QueryDriver queries.Driver[Model]

	ListAction     *ViewSetAction[Model]
	CreateAction   *ViewSetAction[Model]
	RetrieveAction *ViewSetAction[Model]
	UpdateAction   *ViewSetAction[Model]
	DestroyAction  *ViewSetAction[Model]

	DefaultSerializer serializers.Serializer

	ListCreateView            *View
	RetrieveUpdateDestroyView *View
}

func NewModelViewSet

func NewModelViewSet[Model any](path string, queryDriver queries.Driver[Model]) *ViewSet[Model]

func NewViewSet

func NewViewSet[Model any](routerPath string, queryDriver queries.Driver[Model]) *ViewSet[Model]

func (*ViewSet[Model]) OnCreate

func (v *ViewSet[Model]) OnCreate(modFunc func(c crud.CreateQueryFunc) crud.CreateQueryFunc) *ViewSet[Model]

func (*ViewSet[Model]) OnDestroy

func (v *ViewSet[Model]) OnDestroy(modFunc func(d crud.DestroyQueryFunc) crud.DestroyQueryFunc) *ViewSet[Model]

func (*ViewSet[Model]) OnUpdate

func (v *ViewSet[Model]) OnUpdate(modFunc func(u crud.UpdateQueryFunc) crud.UpdateQueryFunc) *ViewSet[Model]

func (*ViewSet[Model]) Register

func (v *ViewSet[Model]) Register(r *gin.Engine)

func (*ViewSet[Model]) WithActions

func (v *ViewSet[Model]) WithActions(actions ...ActionID) *ViewSet[Model]

func (*ViewSet[Model]) WithCreate

func (v *ViewSet[Model]) WithCreate(handlerFactoryFunc ViewSetHandlerFactoryFunc[Model]) *ViewSet[Model]

func (*ViewSet[Model]) WithCreateSerializer

func (v *ViewSet[Model]) WithCreateSerializer(serializer serializers.Serializer) *ViewSet[Model]

func (*ViewSet[Model]) WithDestroy

func (v *ViewSet[Model]) WithDestroy(handlerFactoryFunc ViewSetHandlerFactoryFunc[Model]) *ViewSet[Model]

func (*ViewSet[Model]) WithDestroySerializer

func (v *ViewSet[Model]) WithDestroySerializer(serializer serializers.Serializer) *ViewSet[Model]

func (*ViewSet[Model]) WithExtraAction

func (v *ViewSet[Model]) WithExtraAction(
	action *ExtraAction[Model],
	serializer serializers.Serializer,
	isDetail bool,
) *ViewSet[Model]

func (*ViewSet[Model]) WithFieldTypeMapper

func (v *ViewSet[Model]) WithFieldTypeMapper(fieldTypeMapper *types.FieldTypeMapper) *ViewSet[Model]

func (*ViewSet[Model]) WithList

func (v *ViewSet[Model]) WithList(handlerFactoryFunc ViewSetHandlerFactoryFunc[Model]) *ViewSet[Model]

func (*ViewSet[Model]) WithListSerializer

func (v *ViewSet[Model]) WithListSerializer(serializer serializers.Serializer) *ViewSet[Model]

func (*ViewSet[Model]) WithRetrieve

func (v *ViewSet[Model]) WithRetrieve(handlerFactoryFunc ViewSetHandlerFactoryFunc[Model]) *ViewSet[Model]

func (*ViewSet[Model]) WithRetrieveSerializer

func (v *ViewSet[Model]) WithRetrieveSerializer(serializer serializers.Serializer) *ViewSet[Model]

func (*ViewSet[Model]) WithSerializer

func (v *ViewSet[Model]) WithSerializer(serializer serializers.Serializer) *ViewSet[Model]

func (*ViewSet[Model]) WithUpdate

func (v *ViewSet[Model]) WithUpdate(handlerFactoryFunc ViewSetHandlerFactoryFunc[Model]) *ViewSet[Model]

func (*ViewSet[Model]) WithUpdateSerializer

func (v *ViewSet[Model]) WithUpdateSerializer(serializer serializers.Serializer) *ViewSet[Model]

type ViewSetAction

type ViewSetAction[Model any] struct {
	Path string

	View                      *View
	ViewSetHandlerFactoryFunc ViewSetHandlerFactoryFunc[Model]
	Serializer                serializers.Serializer
	QueryDriver               queries.Driver[Model]
}

type ViewSetHandlerFactoryFunc

type ViewSetHandlerFactoryFunc[Model any] ViewSetHandlerFunc[Model]

type ViewSetHandlerFunc

type ViewSetHandlerFunc[Model any] func(IDFunc, queries.Driver[Model], serializers.Serializer) gin.HandlerFunc

Jump to

Keyboard shortcuts

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