Documentation ¶
Index ¶
- Variables
- func InitTestData(db *mongo.Database) error
- func NewDbConnection() (*mongo.Database, error)
- type CoffeeRepository
- type InMemoryCoffeeRepository
- func (r *InMemoryCoffeeRepository) Add(ctx context.Context, name string) entities.Coffee
- func (r *InMemoryCoffeeRepository) Get(id string) (entities.Coffee, error)
- func (r *InMemoryCoffeeRepository) GetAll() entities.Coffees
- func (r *InMemoryCoffeeRepository) WithTransaction(handler func(ctx context.Context) error) error
- type InMemoryOutboxRepository
- type MongoCoffeeRepository
- func (m MongoCoffeeRepository) Add(ctx context.Context, name string) entities.Coffee
- func (m MongoCoffeeRepository) Get(id string) (entities.Coffee, error)
- func (m MongoCoffeeRepository) GetAll() entities.Coffees
- func (m MongoCoffeeRepository) WithTransaction(handler func(ctx context.Context) error) error
- type MongoOutboxRepository
- type OutboxRepository
Constants ¶
This section is empty.
Variables ¶
View Source
var CoffeeCollection = "coffees"
View Source
var NotFound = errors.New("not found")
Functions ¶
func InitTestData ¶
func NewDbConnection ¶
Types ¶
type CoffeeRepository ¶
type CoffeeRepository interface { Get(id string) (entities.Coffee, error) GetAll() entities.Coffees Add(ctx context.Context, name string) entities.Coffee WithTransaction(f func(ctx context.Context) error) error }
CoffeeRepository is the command/query interface this repository supports.
func NewInMemoryCoffeeRepository ¶
func NewInMemoryCoffeeRepository() (CoffeeRepository, error)
func NewMongoCoffeeRepository ¶
func NewMongoCoffeeRepository(db *mongo.Database) (CoffeeRepository, error)
type InMemoryCoffeeRepository ¶
type InMemoryCoffeeRepository struct { }
InMemoryCoffeeRepository is a placeholder in memory db
func (*InMemoryCoffeeRepository) Get ¶
func (r *InMemoryCoffeeRepository) Get(id string) (entities.Coffee, error)
Get retrieves a coffee by id
func (*InMemoryCoffeeRepository) GetAll ¶
func (r *InMemoryCoffeeRepository) GetAll() entities.Coffees
GetAll gets a list of all coffees
func (*InMemoryCoffeeRepository) WithTransaction ¶
func (r *InMemoryCoffeeRepository) WithTransaction(handler func(ctx context.Context) error) error
type InMemoryOutboxRepository ¶
type InMemoryOutboxRepository struct {
// contains filtered or unexported fields
}
func (*InMemoryOutboxRepository) GetUnsent ¶
func (db *InMemoryOutboxRepository) GetUnsent() []entities.OutboxEntry
func (*InMemoryOutboxRepository) MarkSent ¶
func (db *InMemoryOutboxRepository) MarkSent(id string) error
func (*InMemoryOutboxRepository) SendMessage ¶
type MongoCoffeeRepository ¶
type MongoCoffeeRepository struct {
// contains filtered or unexported fields
}
func (MongoCoffeeRepository) Get ¶
func (m MongoCoffeeRepository) Get(id string) (entities.Coffee, error)
func (MongoCoffeeRepository) GetAll ¶
func (m MongoCoffeeRepository) GetAll() entities.Coffees
func (MongoCoffeeRepository) WithTransaction ¶
func (m MongoCoffeeRepository) WithTransaction(handler func(ctx context.Context) error) error
type MongoOutboxRepository ¶
type MongoOutboxRepository struct {
// contains filtered or unexported fields
}
func (MongoOutboxRepository) GetUnsent ¶
func (m MongoOutboxRepository) GetUnsent() []entities.OutboxEntry
func (MongoOutboxRepository) MarkSent ¶
func (m MongoOutboxRepository) MarkSent(id string) error
func (MongoOutboxRepository) SendMessage ¶
type OutboxRepository ¶
type OutboxRepository interface { SendMessage(ctx context.Context, topic string, message []byte) (string, error) GetUnsent() []entities.OutboxEntry MarkSent(id string) error }
func NewInMemoryOutboxRepository ¶
func NewInMemoryOutboxRepository() OutboxRepository
func NewMongoOutboxRepository ¶
func NewMongoOutboxRepository(db *mongo.Database) (OutboxRepository, error)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.