Documentation ¶
Index ¶
- Variables
- func Decode(context *qor.Context, result interface{}, res Resourcer) error
- func DecodeToResource(res Resourcer, result interface{}, metaValues *MetaValues, ...) *processor
- type ConfigureMetaBeforeInitializeInterface
- type ConfigureMetaInterface
- type ConfigureResourceBeforeInitializeInterface
- type ConfigureResourceInterface
- type Meta
- func (meta Meta) GetBaseResource() Resourcer
- func (meta Meta) GetFieldName() string
- func (meta *Meta) GetFormattedValuer() func(interface{}, *qor.Context) interface{}
- func (meta Meta) GetName() string
- func (meta Meta) GetSetter() func(resource interface{}, metaValue *MetaValue, context *qor.Context)
- func (meta Meta) GetValuer() func(interface{}, *qor.Context) interface{}
- func (meta Meta) HasPermission(mode roles.PermissionMode, context *qor.Context) bool
- func (meta *Meta) Initialize() error
- func (meta *Meta) PreInitialize() error
- func (meta *Meta) SetFieldName(name string)
- func (meta *Meta) SetFormattedValuer(fc func(interface{}, *qor.Context) interface{})
- func (meta *Meta) SetPermission(permission *roles.Permission)
- func (meta *Meta) SetSetter(fc func(resource interface{}, metaValue *MetaValue, context *qor.Context))
- func (meta *Meta) SetValuer(fc func(interface{}, *qor.Context) interface{})
- type MetaValue
- type MetaValues
- type Metaor
- type Resource
- func (res *Resource) AddProcessor(fc func(interface{}, *MetaValues, *qor.Context) error)
- func (res *Resource) AddValidator(fc func(interface{}, *MetaValues, *qor.Context) error)
- func (res *Resource) CallDelete(result interface{}, context *qor.Context) error
- func (res *Resource) CallFindMany(result interface{}, context *qor.Context) error
- func (res *Resource) CallFindOne(result interface{}, metaValues *MetaValues, context *qor.Context) error
- func (res *Resource) CallSave(result interface{}, context *qor.Context) error
- func (res *Resource) GetMetas([]string) []Metaor
- func (res *Resource) GetResource() *Resource
- func (res *Resource) HasPermission(mode roles.PermissionMode, context *qor.Context) bool
- func (res *Resource) NewSlice() interface{}
- func (res *Resource) NewStruct() interface{}
- func (res *Resource) PrimaryDBName() (name string)
- func (res *Resource) PrimaryField() *gorm.Field
- func (res *Resource) PrimaryFieldName() (name string)
- type Resourcer
Constants ¶
This section is empty.
Variables ¶
var ErrProcessorSkipLeft = errors.New("resource: skip left")
ErrProcessorSkipLeft skip left processors error, if returned this error in validation, before callbacks, then qor will stop process following processors
Functions ¶
func DecodeToResource ¶
func DecodeToResource(res Resourcer, result interface{}, metaValues *MetaValues, context *qor.Context) *processor
DecodeToResource decode meta values to resource result
Types ¶
type ConfigureMetaBeforeInitializeInterface ¶
type ConfigureMetaBeforeInitializeInterface interface {
ConfigureQorMetaBeforeInitialize(Metaor)
}
ConfigureMetaBeforeInitializeInterface if a struct's field's type implemented this interface, it will be called when initializing a meta
type ConfigureMetaInterface ¶
type ConfigureMetaInterface interface {
ConfigureQorMeta(Metaor)
}
ConfigureMetaInterface if a struct's field's type implemented this interface, it will be called after configed
type ConfigureResourceBeforeInitializeInterface ¶
type ConfigureResourceBeforeInitializeInterface interface {
ConfigureQorResourceBeforeInitialize(Resourcer)
}
ConfigureResourceBeforeInitializeInterface if a struct implemented this interface, it will be called before everything when create a resource with the struct
type ConfigureResourceInterface ¶
type ConfigureResourceInterface interface {
ConfigureQorResource(Resourcer)
}
ConfigureResourceInterface if a struct implemented this interface, it will be called after configured by user
type Meta ¶
type Meta struct { Name string FieldName string Setter func(resource interface{}, metaValue *MetaValue, context *qor.Context) Valuer func(interface{}, *qor.Context) interface{} FormattedValuer func(interface{}, *qor.Context) interface{} Permission *roles.Permission Resource Resourcer FieldStruct *gorm.StructField }
Meta meta struct definition
func (Meta) GetBaseResource ¶
GetBaseResource get base resource from meta
func (Meta) GetFieldName ¶
GetFieldName get meta's field name
func (*Meta) GetFormattedValuer ¶
GetFormattedValuer get formatted valuer from meta
func (Meta) HasPermission ¶
HasPermission check has permission or not
func (*Meta) Initialize ¶
Initialize initialize meta, will set valuer, setter if haven't configure it
func (*Meta) PreInitialize ¶
PreInitialize when will be run before initialize, used to fill some basic necessary information
func (*Meta) SetFieldName ¶
SetFieldName set meta's field name
func (*Meta) SetFormattedValuer ¶
SetFormattedValuer set formatted valuer for meta
func (*Meta) SetPermission ¶
func (meta *Meta) SetPermission(permission *roles.Permission)
SetPermission set permission for meta
type MetaValue ¶
type MetaValue struct { Name string Value interface{} MetaValues *MetaValues Meta Metaor // contains filtered or unexported fields }
MetaValue a struct used to hold information when convert inputs from HTTP form, JSON, CSV files and so on to meta values It will includes field name, field value and its configured Meta, if it is a nested resource, will includes nested metas in its MetaValues
type MetaValues ¶
type MetaValues struct {
Values []*MetaValue
}
MetaValues is slice of MetaValue
func ConvertFormToMetaValues ¶
func ConvertFormToMetaValues(request *http.Request, metaors []Metaor, prefix string) (*MetaValues, error)
ConvertFormToMetaValues convert form to meta values
func ConvertJSONToMetaValues ¶
func ConvertJSONToMetaValues(reader io.Reader, metaors []Metaor) (*MetaValues, error)
ConvertJSONToMetaValues convert json to meta values
func (MetaValues) Get ¶
func (mvs MetaValues) Get(name string) *MetaValue
Get get meta value from MetaValues with name
type Metaor ¶
type Metaor interface { GetName() string GetFieldName() string GetSetter() func(resource interface{}, metaValue *MetaValue, context *qor.Context) GetFormattedValuer() func(interface{}, *qor.Context) interface{} GetValuer() func(interface{}, *qor.Context) interface{} GetResource() Resourcer GetMetas() []Metaor HasPermission(roles.PermissionMode, *qor.Context) bool }
Metaor interface
type Resource ¶
type Resource struct { Name string Value interface{} FindManyHandler func(interface{}, *qor.Context) error FindOneHandler func(interface{}, *MetaValues, *qor.Context) error SaveHandler func(interface{}, *qor.Context) error DeleteHandler func(interface{}, *qor.Context) error Permission *roles.Permission // contains filtered or unexported fields }
Resource is a struct that including basic definition of qor resource
func (*Resource) AddProcessor ¶
func (res *Resource) AddProcessor(fc func(interface{}, *MetaValues, *qor.Context) error)
AddProcessor add processor to resource, it is used to process data before creating, updating, will rollback the change if it return any error
func (*Resource) AddValidator ¶
func (res *Resource) AddValidator(fc func(interface{}, *MetaValues, *qor.Context) error)
AddValidator add validator to resource, it will invoked when creating, updating, and will rollback the change if validator return any error
func (*Resource) CallDelete ¶
CallDelete call delete method
func (*Resource) CallFindMany ¶
CallFindMany call find many method
func (*Resource) CallFindOne ¶
func (res *Resource) CallFindOne(result interface{}, metaValues *MetaValues, context *qor.Context) error
CallFindOne call find one method
func (*Resource) GetResource ¶
GetResource return itself to match interface `Resourcer`
func (*Resource) HasPermission ¶
HasPermission check permission of resource
func (*Resource) NewSlice ¶
func (res *Resource) NewSlice() interface{}
NewSlice initialize a slice of struct for the Resource
func (*Resource) NewStruct ¶
func (res *Resource) NewStruct() interface{}
NewStruct initialize a struct for the Resource
func (*Resource) PrimaryDBName ¶
PrimaryDBName return db column name of the resource's primary field
func (*Resource) PrimaryField ¶
PrimaryField return gorm's primary field
func (*Resource) PrimaryFieldName ¶
PrimaryFieldName return struct column name of the resource's primary field
type Resourcer ¶
type Resourcer interface { GetResource() *Resource GetMetas([]string) []Metaor CallFindMany(interface{}, *qor.Context) error CallFindOne(interface{}, *MetaValues, *qor.Context) error CallSave(interface{}, *qor.Context) error CallDelete(interface{}, *qor.Context) error NewSlice() interface{} NewStruct() interface{} }
Resourcer interface