Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Condition ¶
type Condition byte
Condition represents a filter comparison operation between a field and a value
const ( // Equal if it should be the same Equal Condition = 1 << iota // LessThan if it should be smaller LessThan // LessThanOrEqual if it should be smaller or equal LessThanOrEqual // GreaterThan if it should be larger GreaterThan // GreaterThanOrEqual if it should be equal or greater than GreaterThanOrEqual )
type Factory ¶
type Factory interface { // NewReaction creates a new Reaction interactor NewReaction() Reaction }
Factory interface allows us to provide other parts of the system with a way to make instances of our use-case / interactors when they need to
func NewEngine ¶
func NewEngine(s StorageFactory) Factory
NewEngine creates a new engine factory that will make use of the passed in StorageFactory for any data persistence needs.
type JWTSignParser ¶
type JWTSignParser interface { Sign(claims map[string]interface{}, secret string) (map[string]interface{}, error) Parse(tokenStr string, secret string) (map[string]interface{}, error) }
JWTSignParser ...
type Query ¶
Query represents a query specification for filtering sorting, paging and limiting the data requested
func NewQuery ¶
NewQuery creates a new database query spec. The name is what the storage system should use to identify the types, usually a table or collection name.
type QueryBuilder ¶
type QueryBuilder interface { Filter(property string, value interface{}) QueryBuilder Order(property string, direction Direction) }
QueryBuilder helps with query creation
type Reaction ¶
type Reaction interface { Insert(ctx context.Context, id, person, details, description, typ string) error // Update is the update-a-reaction use-case Update(ctx context.Context, id, person, details, description, typ string) error // Query is the list-the-reactions use-case Query(ctx context.Context, skip uint64, take uint64) ([]domain.Reaction, error) // FindOne ... FindOne(ctx context.Context, id string) (*domain.Reaction, error) // RemoveDelete ... Remove(ctx context.Context, id string) (string, error) // ListAllReactiones ... ListAllReactiones(ctx context.Context, skip, take uint64) (*[]domain.Reaction, error) }
Reaction ...
type ReactionRepository ¶
type ReactionRepository interface { // Reaction adds a new Reaction to the datastore Insert(c context.Context, reaction domain.Reaction) error // Put adds a new Reaction to the datastore Update(c context.Context, reaction domain.Reaction, id string) error // Query returns existing reactions reactioning the // query provided Query(c context.Context, query *Query) []*domain.Reaction // FindOne returns ... FindOne(c context.Context, id string) (*domain.Reaction, error) // Remove ... Remove(c context.Context, id string) (string, error) // ListAllReactiones ... ListAllReactiones(ctx context.Context, skip uint64, take uint64) ([]domain.Reaction, error) }
ReactionRepository defines the methods that any data storage provider needs to implement to get and store reactions
type SecurityFactory ¶
type SecurityFactory interface { // NewSecurityFactory ... NewSecurityFactory() JWTSignParser }
SecurityFactory ...
type StorageFactory ¶
type StorageFactory interface { // NewReactionRepository returns a storage specific // ReactionRepository implementation NewReactionRepository() ReactionRepository Close() }
StorageFactory is the interface that a storage provider needs to implement so that the engine can request repository instances as it needs them