Documentation ¶
Index ¶
- Constants
- Variables
- func GetIdsFromRecordList(records []DomainObjectInterface) []string
- type AggregateDefinition
- func (a *AggregateDefinition) GetCommandByName(name string) *CustomCommand
- func (a *AggregateDefinition) GetEntities() []*EntityDefinition
- func (a *AggregateDefinition) GetEntityByName(name string) *EntityDefinition
- func (a *AggregateDefinition) GetTables() []TableInterface
- func (a *AggregateDefinition) GetValueObjectByName(name string) *ValueObjectDefinition
- type AggregateInterface
- type AggregateRootInterface
- type ArgsInterface
- type Collection
- type CustomCommand
- type DBType
- type Definitions
- type DomainObjectInterface
- type EntityCommandsDefinition
- type EntityDefinition
- func (t *EntityDefinition) AggregateDefinition() *AggregateDefinition
- func (t *EntityDefinition) GetAbstract() bool
- func (t *EntityDefinition) GetCommands() *EntityCommandsDefinition
- func (t *EntityDefinition) GetDisableDatabaseStore() bool
- func (t *EntityDefinition) GetDisableDatetime() bool
- func (t *EntityDefinition) GetDisableID() bool
- func (t *EntityDefinition) GetKeys() []Property
- func (t *EntityDefinition) GetName() string
- func (t *EntityDefinition) GetType() string
- func (t *EntityDefinition) GetUseOneOf() bool
- func (t *EntityDefinition) HasTranslatable() bool
- func (t *EntityDefinition) IsAggregateRoot() bool
- func (t *EntityDefinition) IsEntity() bool
- func (t *EntityDefinition) NestedProperties() []Property
- func (t *EntityDefinition) Snake() string
- func (t *EntityDefinition) StoredProperties() []Property
- func (t *EntityDefinition) Title() string
- func (t *EntityDefinition) UseTenants() bool
- type EntityQueriesDefinition
- type Event
- type EventDispatchClient
- type EventStoreClient
- type ExternalData
- type Factory
- type FactoryInterface
- type JWTClaims
- type Model
- type ModelInterface
- type OnDeleteValue
- type Property
- type PropertyType
- type RepeatedProperty
- func (r *RepeatedProperty) DBType() *DBType
- func (r *RepeatedProperty) GetInverseProperty() string
- func (r *RepeatedProperty) GetName() string
- func (r *RepeatedProperty) GetPosition() int
- func (r *RepeatedProperty) GetPrimaryKey() bool
- func (r *RepeatedProperty) GetReference() TableInterface
- func (r *RepeatedProperty) GetReferenceName() string
- func (r *RepeatedProperty) GetRequired() bool
- func (r *RepeatedProperty) GoNil() string
- func (r *RepeatedProperty) GoType() string
- func (r *RepeatedProperty) GraphqlSchemaType() string
- func (r *RepeatedProperty) GraphqlType() string
- func (r *RepeatedProperty) IsNested() bool
- func (r *RepeatedProperty) IsRepeated() bool
- func (r *RepeatedProperty) IsStored() bool
- func (r *RepeatedProperty) IsTranslatable() bool
- func (r *RepeatedProperty) JSONType() string
- func (r *RepeatedProperty) NameWithoutID() string
- func (r *RepeatedProperty) ProtoType() string
- func (r *RepeatedProperty) ProtoTypeOptional() string
- func (r *RepeatedProperty) SetPosition(position int)
- func (r *RepeatedProperty) SetReference(e TableInterface)
- func (r *RepeatedProperty) Snake() string
- func (r *RepeatedProperty) Title() string
- func (r *RepeatedProperty) TitleWithoutID() string
- func (r *RepeatedProperty) Type() PropertyType
- type RepositoryInterface
- type RequestConfig
- type TableInterface
- type ValueObjectDefinition
- func (t *ValueObjectDefinition) AggregateDefinition() *AggregateDefinition
- func (t *ValueObjectDefinition) GetAbstract() bool
- func (t *ValueObjectDefinition) GetCommands() *EntityCommandsDefinition
- func (t *ValueObjectDefinition) GetDisableDatabaseStore() bool
- func (t *ValueObjectDefinition) GetDisableDatetime() bool
- func (t *ValueObjectDefinition) GetDisableID() bool
- func (t *ValueObjectDefinition) GetKeys() []Property
- func (t *ValueObjectDefinition) GetName() string
- func (t *ValueObjectDefinition) GetType() string
- func (t *ValueObjectDefinition) GetUseOneOf() bool
- func (t *ValueObjectDefinition) HasTranslatable() bool
- func (t *ValueObjectDefinition) IsAggregateRoot() bool
- func (t *ValueObjectDefinition) IsEntity() bool
- func (t *ValueObjectDefinition) NestedProperties() []Property
- func (t *ValueObjectDefinition) Snake() string
- func (t *ValueObjectDefinition) StoredProperties() []Property
- func (t *ValueObjectDefinition) Title() string
- func (t *ValueObjectDefinition) UseTenants() bool
- type Workflow
- type WorkflowInterface
Constants ¶
const OnDeleteCascade = OnDeleteValue("CASCADE")
const OnDeleteProtect = OnDeleteValue("PROTECT")
const OnDeleteSetNull = OnDeleteValue("SET NULL")
const RepeatedPropertyType = PropertyType("RepeatedPropertyType")
const STRING = "string"
STRING is a contains reprensenting the widely used string type.
Variables ¶
var SetAggregateIDProperty func(string) Property
Functions ¶
func GetIdsFromRecordList ¶
func GetIdsFromRecordList(records []DomainObjectInterface) []string
GetIdsFromRecordList will return the id from a list of records.
Types ¶
type AggregateDefinition ¶
type AggregateDefinition struct { AggregateRoot *EntityDefinition Children []*EntityDefinition UseTenants bool ValueObjects []*ValueObjectDefinition Commands []*CustomCommand EventStoreClient EventStoreClient EventDispatchClient EventDispatchClient ExternalData []*ExternalData // contains filtered or unexported fields }
Definition is used to declare the information of a model, so it can generate its code.
func (*AggregateDefinition) GetCommandByName ¶
func (a *AggregateDefinition) GetCommandByName(name string) *CustomCommand
func (*AggregateDefinition) GetEntities ¶
func (a *AggregateDefinition) GetEntities() []*EntityDefinition
func (*AggregateDefinition) GetEntityByName ¶
func (a *AggregateDefinition) GetEntityByName(name string) *EntityDefinition
func (*AggregateDefinition) GetTables ¶
func (a *AggregateDefinition) GetTables() []TableInterface
func (*AggregateDefinition) GetValueObjectByName ¶
func (a *AggregateDefinition) GetValueObjectByName(name string) *ValueObjectDefinition
type AggregateInterface ¶
type AggregateInterface interface { Definition() *AggregateDefinition RepositoryInterface() RepositoryInterface // SetRepository(RepositoryInterface) AggregateRootInterface() AggregateRootInterface LoadExternalData( WorkflowInterface, string, []interface{}, ) error }
Definition is used to declare the information of a model, so it can generate its code.
type AggregateRootInterface ¶
type AggregateRootInterface interface {
CheckIDExist(WorkflowInterface, string) error
}
type ArgsInterface ¶
type ArgsInterface interface { GetName() string Title() string ProtoType() string GoType() string GoNil() string GetReferenceName() string GetReference() TableInterface SetReference(e TableInterface) Type() PropertyType IsRepeated() bool }
type Collection ¶
type Collection struct { Aggregate AggregateInterface Workflow WorkflowInterface Update func(interface{}) ([]DomainObjectInterface, error) Delete func() error // contains filtered or unexported fields }
Collection contains several objects of a same model.
func (*Collection) GetByID ¶
func (c *Collection) GetByID(id string) interface{}
GetByID will return the specified record in the collection, by ID.
func (*Collection) GetKeys ¶
func (c *Collection) GetKeys() []string
GetByID will return the specified record in the collection, by ID.
func (*Collection) Init ¶
func (c *Collection) Init(records []DomainObjectInterface)
Init will initialize the collection with the specified records.
func (*Collection) Slice ¶
func (c *Collection) Slice() []DomainObjectInterface
Slice will return the records in the collection, as a slice.
type CustomCommand ¶
type CustomCommand struct { Name string Event string Repository bool Args []ArgsInterface Results []ArgsInterface }
func (*CustomCommand) Title ¶
func (f *CustomCommand) Title() string
type Definitions ¶
type Definitions struct { Repository string // contains filtered or unexported fields }
func (*Definitions) GetByID ¶
func (ds *Definitions) GetByID(id string) *AggregateDefinition
GetByID return the specified definition by its ID.
func (*Definitions) Register ¶
func (ds *Definitions) Register(a *AggregateDefinition)
Register is used to register a new definition into the service.
func (*Definitions) Slice ¶
func (ds *Definitions) Slice() []*AggregateDefinition
Slice return the definitions as a slice.
type DomainObjectInterface ¶
type DomainObjectInterface interface {
GetID() string
}
type EntityCommandsDefinition ¶
type EntityCommandsDefinition struct { Create *RequestConfig Update *RequestConfig Delete *RequestConfig CustomCommands []*CustomCommand }
type EntityDefinition ¶
type EntityDefinition struct { Aggregate AggregateInterface Name string Keys []Property Properties []Property DisableID bool DisableDatetime bool Queries *EntityQueriesDefinition Commands *EntityCommandsDefinition UseOneOf bool // useTenants bool DisableDatabaseStore bool SafeDelete bool Abstract bool // contains filtered or unexported fields }
func (*EntityDefinition) AggregateDefinition ¶
func (t *EntityDefinition) AggregateDefinition() *AggregateDefinition
func (*EntityDefinition) GetAbstract ¶
func (t *EntityDefinition) GetAbstract() bool
func (*EntityDefinition) GetCommands ¶
func (t *EntityDefinition) GetCommands() *EntityCommandsDefinition
func (*EntityDefinition) GetDisableDatabaseStore ¶
func (t *EntityDefinition) GetDisableDatabaseStore() bool
func (*EntityDefinition) GetDisableDatetime ¶
func (t *EntityDefinition) GetDisableDatetime() bool
func (*EntityDefinition) GetDisableID ¶
func (t *EntityDefinition) GetDisableID() bool
func (*EntityDefinition) GetKeys ¶
func (t *EntityDefinition) GetKeys() []Property
func (*EntityDefinition) GetName ¶
func (t *EntityDefinition) GetName() string
func (*EntityDefinition) GetType ¶
func (t *EntityDefinition) GetType() string
func (*EntityDefinition) GetUseOneOf ¶
func (t *EntityDefinition) GetUseOneOf() bool
func (*EntityDefinition) HasTranslatable ¶
func (t *EntityDefinition) HasTranslatable() bool
func (*EntityDefinition) IsAggregateRoot ¶
func (t *EntityDefinition) IsAggregateRoot() bool
func (*EntityDefinition) IsEntity ¶
func (t *EntityDefinition) IsEntity() bool
func (*EntityDefinition) NestedProperties ¶
func (t *EntityDefinition) NestedProperties() []Property
func (*EntityDefinition) Snake ¶
func (t *EntityDefinition) Snake() string
func (*EntityDefinition) StoredProperties ¶
func (t *EntityDefinition) StoredProperties() []Property
func (t *EntityDefinition) setUseTenants(useTenants bool) { t.useTenants = useTenants }
func (*EntityDefinition) Title ¶
func (t *EntityDefinition) Title() string
func (*EntityDefinition) UseTenants ¶
func (t *EntityDefinition) UseTenants() bool
type EntityQueriesDefinition ¶
type EntityQueriesDefinition struct { Get *RequestConfig List *RequestConfig GetFromEvents *RequestConfig CustomCommands []*CustomCommand }
type Event ¶
type Event struct { ID string Aggregate AggregateInterface AggregateID string Name string Payload map[string]interface{} }
type EventDispatchClient ¶
type EventStoreClient ¶
type EventStoreClient interface { RegisterEvents(WorkflowInterface, AggregateInterface, []*Event) error MarkDispatchedEvent(WorkflowInterface, *Event) error GetAggregateEvents(WorkflowInterface, AggregateInterface, string) ([]*Event, error) }
type ExternalData ¶
type ExternalData struct { Aggregate AggregateInterface Module string Data []interface{} }
type Factory ¶
type Factory struct { Aggregate AggregateInterface Workflow WorkflowInterface New func() DomainObjectInterface Scan func(interface{}, *Collection) ([]DomainObjectInterface, error) CheckExternalForeignKeys func([]DomainObjectInterface) error Select func( filters []*libdata.Filter, with []string, offset *uint, limit *uint, orderByArg *string, ) (*Collection, error) Create func(records interface{}) (*Collection, error) PostCreate func(records *Collection) error PostCreateSelectFilters func([]*libdata.Filter, []DomainObjectInterface) []*libdata.Filter Upsert func([]*libdata.Filter, interface{}, bool) (interface{}, bool, error) }
Pool represent a Model within the current environnement, so we can easily make operation on it.
type FactoryInterface ¶
type FactoryInterface interface { }
type JWTClaims ¶
type JWTClaims struct { *jwt.StandardClaims TenantID string UserID string UserEmail string Groups []*basepb.GetByExternalIDQuery }
type ModelInterface ¶
type ModelInterface interface { // Select( // *WorkflowInterface, []*libdata.Filter, // []string, *uint, *string, *string, // ) (*Collection, error) // Create(*WorkflowInterface, []interface{}) (*Collection, error) // Delete( // *WorkflowInterface, []*libdata.Filter, []string, // ) (*Collection, error) // SetStore(interface{}) error // SetNew(func() interface{}) error GetID() string }
ModelInterface force to define the function relative to Model.
type OnDeleteValue ¶
type OnDeleteValue string
type Property ¶
type Property interface { GetName() string NameWithoutID() string Title() string TitleWithoutID() string Snake() string Type() PropertyType GoType() string GoNil() string JSONType() string ProtoType() string ProtoTypeOptional() string DBType() *DBType GraphqlType() string GraphqlSchemaType() string GetReferenceName() string GetReference() TableInterface // GetReferenceDefinition() *ModelDefinition SetReference(TableInterface) GetInverseProperty() string GetRequired() bool GetPrimaryKey() bool // GetFieldData() *FieldData IsStored() bool IsNested() bool SetPosition(int) GetPosition() int IsRepeated() bool IsTranslatable() bool }
Field is an interface to get the data from the field.
type RepeatedProperty ¶
func (*RepeatedProperty) DBType ¶
func (r *RepeatedProperty) DBType() *DBType
func (*RepeatedProperty) GetInverseProperty ¶
func (r *RepeatedProperty) GetInverseProperty() string
func (*RepeatedProperty) GetName ¶
func (r *RepeatedProperty) GetName() string
func (*RepeatedProperty) GetPosition ¶
func (r *RepeatedProperty) GetPosition() int
func (*RepeatedProperty) GetPrimaryKey ¶
func (r *RepeatedProperty) GetPrimaryKey() bool
func (*RepeatedProperty) GetReference ¶
func (r *RepeatedProperty) GetReference() TableInterface
func (*RepeatedProperty) GetReferenceName ¶
func (r *RepeatedProperty) GetReferenceName() string
func (*RepeatedProperty) GetRequired ¶
func (r *RepeatedProperty) GetRequired() bool
func (*RepeatedProperty) GoNil ¶
func (r *RepeatedProperty) GoNil() string
func (*RepeatedProperty) GoType ¶
func (r *RepeatedProperty) GoType() string
func (*RepeatedProperty) GraphqlSchemaType ¶
func (r *RepeatedProperty) GraphqlSchemaType() string
func (*RepeatedProperty) GraphqlType ¶
func (r *RepeatedProperty) GraphqlType() string
func (*RepeatedProperty) IsNested ¶
func (r *RepeatedProperty) IsNested() bool
func (*RepeatedProperty) IsRepeated ¶
func (r *RepeatedProperty) IsRepeated() bool
func (*RepeatedProperty) IsStored ¶
func (r *RepeatedProperty) IsStored() bool
func (*RepeatedProperty) IsTranslatable ¶
func (r *RepeatedProperty) IsTranslatable() bool
func (*RepeatedProperty) JSONType ¶
func (r *RepeatedProperty) JSONType() string
func (*RepeatedProperty) NameWithoutID ¶
func (r *RepeatedProperty) NameWithoutID() string
func (*RepeatedProperty) ProtoType ¶
func (r *RepeatedProperty) ProtoType() string
func (*RepeatedProperty) ProtoTypeOptional ¶
func (r *RepeatedProperty) ProtoTypeOptional() string
func (*RepeatedProperty) SetPosition ¶
func (r *RepeatedProperty) SetPosition(position int)
func (*RepeatedProperty) SetReference ¶
func (r *RepeatedProperty) SetReference(e TableInterface)
func (*RepeatedProperty) Snake ¶
func (r *RepeatedProperty) Snake() string
func (*RepeatedProperty) Title ¶
func (r *RepeatedProperty) Title() string
func (*RepeatedProperty) TitleWithoutID ¶
func (r *RepeatedProperty) TitleWithoutID() string
func (*RepeatedProperty) Type ¶
func (r *RepeatedProperty) Type() PropertyType
type RepositoryInterface ¶
type RepositoryInterface interface { Insert(WorkflowInterface, interface{}) ([]DomainObjectInterface, error) // Select(TableInterface, WorkflowInterface, *basepb.ListQuery) ([]DomainObjectInterface, error) Update(*AggregateDefinition, WorkflowInterface, []*basepb.Where, interface{}) ([]DomainObjectInterface, error) Delete(*AggregateDefinition, WorkflowInterface, []*basepb.Where) error GetCache(string) ([]byte, error) SetCache(string, []byte) error GetRecordCache(string, string) ([]byte, error) SetRecordCache(string, string, []byte) error InvalidateRecordCache(string, string) DefinitionInterface() interface{} }
type RequestConfig ¶
type RequestConfig struct {
Groups *[]*basepb.GetByExternalIDQuery
}
type TableInterface ¶
type TableInterface interface { GetName() string Title() string Snake() string GetType() string IsEntity() bool UseTenants() bool GetDisableID() bool GetDisableDatetime() bool GetDisableDatabaseStore() bool GetUseOneOf() bool StoredProperties() []Property NestedProperties() []Property GetCommands() *EntityCommandsDefinition GetKeys() []Property IsAggregateRoot() bool HasTranslatable() bool GetAbstract() bool }
type ValueObjectDefinition ¶
type ValueObjectDefinition struct { Aggregate AggregateInterface Name string Keys []Property Properties []Property Abstract bool // contains filtered or unexported fields }
func (*ValueObjectDefinition) AggregateDefinition ¶
func (t *ValueObjectDefinition) AggregateDefinition() *AggregateDefinition
func (*ValueObjectDefinition) GetAbstract ¶
func (t *ValueObjectDefinition) GetAbstract() bool
func (*ValueObjectDefinition) GetCommands ¶
func (t *ValueObjectDefinition) GetCommands() *EntityCommandsDefinition
func (*ValueObjectDefinition) GetDisableDatabaseStore ¶
func (t *ValueObjectDefinition) GetDisableDatabaseStore() bool
func (*ValueObjectDefinition) GetDisableDatetime ¶
func (t *ValueObjectDefinition) GetDisableDatetime() bool
func (*ValueObjectDefinition) GetDisableID ¶
func (t *ValueObjectDefinition) GetDisableID() bool
func (*ValueObjectDefinition) GetKeys ¶
func (t *ValueObjectDefinition) GetKeys() []Property
func (*ValueObjectDefinition) GetName ¶
func (t *ValueObjectDefinition) GetName() string
func (*ValueObjectDefinition) GetType ¶
func (t *ValueObjectDefinition) GetType() string
func (*ValueObjectDefinition) GetUseOneOf ¶
func (t *ValueObjectDefinition) GetUseOneOf() bool
func (*ValueObjectDefinition) HasTranslatable ¶
func (t *ValueObjectDefinition) HasTranslatable() bool
func (*ValueObjectDefinition) IsAggregateRoot ¶
func (t *ValueObjectDefinition) IsAggregateRoot() bool
func (*ValueObjectDefinition) IsEntity ¶
func (t *ValueObjectDefinition) IsEntity() bool
func (*ValueObjectDefinition) NestedProperties ¶
func (t *ValueObjectDefinition) NestedProperties() []Property
func (*ValueObjectDefinition) Snake ¶
func (t *ValueObjectDefinition) Snake() string
func (*ValueObjectDefinition) StoredProperties ¶
func (t *ValueObjectDefinition) StoredProperties() []Property
func (*ValueObjectDefinition) Title ¶
func (t *ValueObjectDefinition) Title() string
func (*ValueObjectDefinition) UseTenants ¶
func (t *ValueObjectDefinition) UseTenants() bool
type Workflow ¶
type WorkflowInterface ¶
type WorkflowInterface interface {
Workflow() *Workflow
}