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