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 { // NewGoal creates a new Goal interactor NewGoal() Goal }
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 Goal ¶
type Goal interface { Insert(ctx context.Context, creator, aim, reason, details, typ string, tags []string) error // Update is the update-a-goal use-case Update(ctx context.Context, id, creator, aim, reason, details, typ string, tags []string) error // Query is the list-the-goals use-case Query(ctx context.Context, skip uint64, take uint64) ([]domain.Goal, error) // FindOne ... FindOne(ctx context.Context, id string) (*domain.Goal, error) // RemoveDelete ... Remove(ctx context.Context, id string) (string, error) // ListAllGoals ... ListAllGoals(ctx context.Context, skip, take uint64) (*[]domain.Goal, error) }
Goal ...
type GoalRepository ¶
type GoalRepository interface { // Goal adds a new Goal to the datastore Insert(c context.Context, goal domain.Goal, journey domain.Journey) error // Put adds a new Goal to the datastore Update(c context.Context, goal domain.Goal, journey domain.Journey, id string) error // Query returns existing goals matching the // query provided Query(c context.Context, query *Query) []*domain.Goal // FindOne returns ... FindOne(c context.Context, id string) (*domain.Goal, error) // Remove ... Remove(c context.Context, id string) (string, error) // ListAllGoals ... ListAllGoals(ctx context.Context, skip uint64, take uint64) ([]domain.Goal, error) }
GoalRepository defines the methods that any data storage provider needs to implement to get and store goals
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 SecurityFactory ¶
type SecurityFactory interface { // NewSecurityFactory ... NewSecurityFactory() JWTSignParser }
SecurityFactory ...
type StorageFactory ¶
type StorageFactory interface { // NewGoalRepository returns a storage specific // GoalRepository implementation NewGoalRepository() GoalRepository Close() }
StorageFactory is the interface that a storage provider needs to implement so that the engine can request repository instances as it needs them