model

package
v1.2.99 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2022 License: MIT Imports: 19 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetIDAsString added in v1.2.44

func GetIDAsString(idToConvert interface{}) string

func ParseFilter added in v1.2.39

func ParseFilter(filter string) *wst.Filter

Types

type ACL

type ACL struct {
	AccessType    string `json:"accessType"`
	PrincipalType string `json:"principalType"`
	PrincipalId   string `json:"principalId"`
	Permission    string `json:"permission"`
	Property      string `json:"property"`
}

type ArgHttp added in v1.2.97

type ArgHttp struct {
	Source string
}

type BearerRole added in v1.2.44

type BearerRole struct {
	Name string
}

type BearerToken added in v1.2.44

type BearerToken struct {
	User  *BearerUser
	Roles []BearerRole
}

type BearerUser added in v1.2.44

type BearerUser struct {
	Id     interface{}
	Data   interface{}
	System bool
}

type CacheConfig added in v1.2.94

type CacheConfig struct {
	Datasource string     `json:"datasource"`
	Ttl        int        `json:"ttl"`
	Keys       [][]string `json:"keys"`
}

type CasbinConfig added in v1.2.44

type CasbinConfig struct {
	RequestDefinition  string   `json:"requestDefinition"`
	PolicyDefinition   string   `json:"policyDefinition"`
	RoleDefinition     string   `json:"roleDefinition"`
	PolicyEffect       string   `json:"policyEffect"`
	MatchersDefinition string   `json:"matchersDefinition"`
	Policies           []string `json:"policies"`
}

type Config

type Config struct {
	Name       string                `json:"name"`
	Plural     string                `json:"plural"`
	Base       string                `json:"base"`
	Public     bool                  `json:"public"`
	Properties map[string]Property   `json:"properties"`
	Relations  *map[string]*Relation `json:"relations"`
	Hidden     []string              `json:"hidden"`
	Casbin     CasbinConfig          `json:"casbin"`
	Cache      CacheConfig           `json:"cache"`
}

type DataSourceConfig

type DataSourceConfig struct {
	Name      string `json:"name"`
	Connector string `json:"connector"`
	Host      string `json:"host"`
	Port      int    `json:"port"`
	Database  string `json:"database"`
	User      string `json:"user"`
	Password  string `json:"password"`
}

type EphemeralData added in v1.2.50

type EphemeralData wst.M

type EventContext

type EventContext struct {
	Bearer                 *BearerToken
	BaseContext            *EventContext
	Remote                 *RemoteMethodOptions
	Filter                 *wst.Filter
	Data                   *wst.M
	Query                  *wst.M
	Instance               *Instance
	Ctx                    *fiber.Ctx
	Ephemeral              *EphemeralData
	IsNewInstance          bool
	Result                 interface{}
	ModelID                interface{}
	StatusCode             int
	DisableTypeConversions bool
}

func (*EventContext) GetBearer added in v1.2.44

func (eventContext *EventContext) GetBearer(loadedModel *Model) (error, *BearerToken)

func (*EventContext) NewError added in v1.2.95

func (eventContext *EventContext) NewError(fiberError *fiber.Error, code string, details fiber.Map) error

func (*EventContext) UpdateEphemeral added in v1.2.50

func (eventContext *EventContext) UpdateEphemeral(newData *wst.M)

type Instance added in v1.2.71

type Instance struct {
	Model *Model
	Id    interface{}
	// contains filtered or unexported fields
}

func (Instance) Get added in v1.2.71

func (modelInstance Instance) Get(relationName string) interface{}

func (*Instance) GetFloat64 added in v1.2.94

func (modelInstance *Instance) GetFloat64(key string) float64

func (*Instance) GetInt added in v1.2.97

func (modelInstance *Instance) GetInt(key string) int64

func (*Instance) GetM added in v1.2.98

func (modelInstance *Instance) GetM(key string) *wst.M

func (Instance) GetMany added in v1.2.71

func (modelInstance Instance) GetMany(relationName string) []Instance

func (*Instance) GetObjectId added in v1.2.97

func (modelInstance *Instance) GetObjectId(key string) primitive.ObjectID

func (Instance) GetOne added in v1.2.71

func (modelInstance Instance) GetOne(relationName string) *Instance

func (*Instance) GetString added in v1.2.94

func (modelInstance *Instance) GetString(key string) string

func (Instance) HideProperties added in v1.2.71

func (modelInstance Instance) HideProperties()

func (*Instance) Reload added in v1.2.71

func (modelInstance *Instance) Reload(eventContext *EventContext) error

func (*Instance) ToJSON added in v1.2.71

func (modelInstance *Instance) ToJSON() wst.M

func (Instance) Transform added in v1.2.71

func (modelInstance Instance) Transform(out interface{}) error

func (Instance) UncheckedTransform added in v1.2.71

func (modelInstance Instance) UncheckedTransform(out interface{}) interface{}

func (*Instance) UpdateAttributes added in v1.2.71

func (modelInstance *Instance) UpdateAttributes(data interface{}, baseContext *EventContext) (*Instance, error)

type InstanceA added in v1.2.76

type InstanceA []Instance

func (InstanceA) ToJSON added in v1.2.76

func (instances InstanceA) ToJSON() []wst.M

type Model

type Model struct {
	Name             string                 `json:"name"`
	Config           *Config                `json:"-"`
	Datasource       *datasource.Datasource `json:"-"`
	Router           *fiber.Router          `json:"-"`
	App              *wst.IApp              `json:"-"`
	BaseUrl          string                 `json:"-"`
	CasbinModel      *casbinmodel.Model
	CasbinAdapter    **fileadapter.Adapter
	Enforcer         *casbin.Enforcer
	DisabledHandlers map[string]bool
	// contains filtered or unexported fields
}

func New

func New(config *Config, modelRegistry *map[string]*Model) *Model

func (*Model) Build

func (loadedModel *Model) Build(data wst.M, baseContext *EventContext) Instance

func (*Model) Create

func (loadedModel *Model) Create(data interface{}, baseContext *EventContext) (*Instance, error)

func (*Model) DeleteById

func (loadedModel *Model) DeleteById(id interface{}) (int64, error)

func (*Model) EnforceEx added in v1.2.73

func (loadedModel *Model) EnforceEx(token *BearerToken, objId string, action string, eventContext *EventContext) (error, bool)

func (*Model) ExtractLookupsFromFilter added in v1.2.18

func (loadedModel *Model) ExtractLookupsFromFilter(filterMap *wst.Filter, disableTypeConversions bool) *wst.A

func (*Model) FindById

func (loadedModel *Model) FindById(id interface{}, filterMap *wst.Filter, baseContext *EventContext) (*Instance, error)

func (*Model) FindMany

func (loadedModel *Model) FindMany(filterMap *wst.Filter, baseContext *EventContext) (InstanceA, error)

func (*Model) FindOne

func (loadedModel *Model) FindOne(filterMap *wst.Filter, baseContext *EventContext) (*Instance, error)

func (*Model) GetHandler

func (loadedModel *Model) GetHandler(event string) func(eventContext *EventContext) error

func (*Model) GetModelRegistry added in v1.2.73

func (loadedModel *Model) GetModelRegistry() *map[string]*Model

func (*Model) HandleRemoteMethod added in v1.2.44

func (loadedModel *Model) HandleRemoteMethod(name string, eventContext *EventContext) error

func (*Model) Initialize added in v1.2.94

func (loadedModel *Model) Initialize()

func (*Model) Observe

func (loadedModel *Model) Observe(operation string, handler func(eventContext *EventContext) error)

func (*Model) On

func (loadedModel *Model) On(event string, handler func(eventContext *EventContext) error)

func (*Model) RemoteMethod

func (loadedModel *Model) RemoteMethod(handler func(context *EventContext) error, options RemoteMethodOptions) fiber.Router

func (*Model) SendError

func (loadedModel *Model) SendError(ctx *fiber.Ctx, err error) error

type OperationItem added in v1.2.44

type OperationItem struct {
	Handler func(context *EventContext) error
	Options RemoteMethodOptions
}

type Property

type Property struct {
	Type     interface{} `json:"type"`
	Required bool        `json:"required"`
	Default  interface{} `json:"default"`
}

type RegistryEntry

type RegistryEntry struct {
	Name  string
	Model *Model
}

type Relation

type Relation struct {
	Type       string  `json:"type"`
	Model      string  `json:"model"`
	PrimaryKey *string `json:"primaryKey"`
	ForeignKey *string `json:"foreignKey"`
	Options    struct {
		//Inverse bool `json:"inverse"`
		SkipAuth bool `json:"skipAuth"`
	} `json:"options"`
}

type RemoteMethodOptions

type RemoteMethodOptions struct {
	Name        string
	Description string
	Accepts     RemoteMethodOptionsHttpArgs
	Http        RemoteMethodOptionsHttp
}

type RemoteMethodOptionsHttp

type RemoteMethodOptionsHttp struct {
	Path string
	Verb string
}

type RemoteMethodOptionsHttpArg added in v1.2.97

type RemoteMethodOptionsHttpArg struct {
	Arg         string
	Type        string
	Description string
	Http        ArgHttp
	Required    bool
}

type RemoteMethodOptionsHttpArgs added in v1.2.97

type RemoteMethodOptionsHttpArgs []RemoteMethodOptionsHttpArg

type SimplifiedConfig added in v1.2.79

type SimplifiedConfig struct {
	Datasource string `json:"dataSource"`
}

type WeStackError

type WeStackError struct {
	FiberError *fiber.Error
	Code       string
	Details    fiber.Map
	Ctx        *EventContext
	// contains filtered or unexported fields
}

func (*WeStackError) Error

func (err *WeStackError) Error() string

Jump to

Keyboard shortcuts

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