Documentation ¶
Index ¶
Constants ¶
const ( CreateInviteCommand eh.CommandType = "CreateInvite" AcceptInviteCommand eh.CommandType = "AcceptInvite" DeclineInviteCommand eh.CommandType = "DeclineInvite" ConfirmInviteCommand eh.CommandType = "ConfirmInvite" DenyInviteCommand eh.CommandType = "DenyInvite" )
const ( // InviteCreatedEvent is when an invite is created. InviteCreatedEvent eh.EventType = "InviteCreated" // InviteAcceptedEvent is when an invite has been accepted by the guest. InviteAcceptedEvent eh.EventType = "InviteAccepted" // InviteDeclinedEvent is when an invite has been declined by the guest. InviteDeclinedEvent eh.EventType = "InviteDeclined" // InviteConfirmedEvent is when an invite has been cornfirmed as booked. InviteConfirmedEvent eh.EventType = "InviteConfirmed" // InviteDeniedEvent is when an invite has been declined to be booked. InviteDeniedEvent eh.EventType = "InviteDenied" )
const InvitationAggregateType eh.AggregateType = "Invitation"
InvitationAggregateType is the type name of the aggregate.
const ResponseSagaType eh.SagaType = "ResponseSaga"
ResponseSagaType is the type of the saga.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AcceptInvite ¶
AcceptInvite is a command for accepting invites.
func (AcceptInvite) AggregateID ¶
func (c AcceptInvite) AggregateID() eh.UUID
func (AcceptInvite) AggregateType ¶
func (c AcceptInvite) AggregateType() eh.AggregateType
func (AcceptInvite) CommandType ¶
func (c AcceptInvite) CommandType() eh.CommandType
type ConfirmInvite ¶
ConfirmInvite is a command for confirming invites.
func (ConfirmInvite) AggregateID ¶
func (c ConfirmInvite) AggregateID() eh.UUID
func (ConfirmInvite) AggregateType ¶
func (c ConfirmInvite) AggregateType() eh.AggregateType
func (ConfirmInvite) CommandType ¶
func (c ConfirmInvite) CommandType() eh.CommandType
type CreateInvite ¶
CreateInvite is a command for creating invites.
func (CreateInvite) AggregateID ¶
func (c CreateInvite) AggregateID() eh.UUID
func (CreateInvite) AggregateType ¶
func (c CreateInvite) AggregateType() eh.AggregateType
func (CreateInvite) CommandType ¶
func (c CreateInvite) CommandType() eh.CommandType
type DeclineInvite ¶
DeclineInvite is a command for declining invites.
func (DeclineInvite) AggregateID ¶
func (c DeclineInvite) AggregateID() eh.UUID
func (DeclineInvite) AggregateType ¶
func (c DeclineInvite) AggregateType() eh.AggregateType
func (DeclineInvite) CommandType ¶
func (c DeclineInvite) CommandType() eh.CommandType
type DenyInvite ¶
DenyInvite is a command for confirming invites.
func (DenyInvite) AggregateID ¶
func (c DenyInvite) AggregateID() eh.UUID
func (DenyInvite) AggregateType ¶
func (c DenyInvite) AggregateType() eh.AggregateType
func (DenyInvite) CommandType ¶
func (c DenyInvite) CommandType() eh.CommandType
type GuestList ¶
type GuestList struct { ID eh.UUID NumGuests int NumAccepted int NumDeclined int NumConfirmed int NumDenied int }
GuestList is a read model object for the guest list.
type GuestListProjector ¶
type GuestListProjector struct {
// contains filtered or unexported fields
}
GuestListProjector is a projector that updates the guest list.
func NewGuestListProjector ¶
func NewGuestListProjector(repository eh.ReadRepository, eventID eh.UUID) *GuestListProjector
NewGuestListProjector creates a new GuestListProjector.
func (*GuestListProjector) HandleEvent ¶
func (p *GuestListProjector) HandleEvent(ctx context.Context, event eh.Event)
HandleEvent implements the HandleEvent method of the EventHandler interface.
func (*GuestListProjector) HandlerType ¶
func (p *GuestListProjector) HandlerType() eh.EventHandlerType
HandlerType implements the HandlerType method of the EventHandler interface.
type Invitation ¶
Invitation is a read model object for an invitation.
type InvitationAggregate ¶
type InvitationAggregate struct { // AggregateBase implements most of the eventhorizon.Aggregate interface. *eh.AggregateBase // contains filtered or unexported fields }
InvitationAggregate is the root aggregate.
The aggregate root will guard that the invitation can only be accepted OR declined, but not both.
func NewInvitationAggregate ¶
func NewInvitationAggregate(id eh.UUID) *InvitationAggregate
NewInvitationAggregate creates a new InvitationAggregate with an ID.
func (*InvitationAggregate) ApplyEvent ¶
func (a *InvitationAggregate) ApplyEvent(ctx context.Context, event eh.Event)
ApplyEvent implements the ApplyEvent method of the Aggregate interface.
func (*InvitationAggregate) HandleCommand ¶
HandleCommand implements the HandleCommand method of the Aggregate interface.
type InvitationProjector ¶
type InvitationProjector struct {
// contains filtered or unexported fields
}
InvitationProjector is a projector that updates the invitations.
func NewInvitationProjector ¶
func NewInvitationProjector(repository eh.ReadRepository) *InvitationProjector
NewInvitationProjector creates a new InvitationProjector.
func (*InvitationProjector) HandleEvent ¶
func (p *InvitationProjector) HandleEvent(ctx context.Context, event eh.Event)
HandleEvent implements the HandleEvent method of the EventHandler interface.
func (*InvitationProjector) HandlerType ¶
func (p *InvitationProjector) HandlerType() eh.EventHandlerType
HandlerType implements the HandlerType method of the EventHandler interface.
type InviteCreatedData ¶
InviteCreatedData is the event data for when an invite has been created.
type ResponseSaga ¶
type ResponseSaga struct {
// contains filtered or unexported fields
}
ResponseSaga is a saga that confirmes all accepted invites until a guest limit has been reached.
func NewResponseSaga ¶
func NewResponseSaga(guestLimit int) *ResponseSaga
NewResponseSaga returns a new ResponseSage with a guest limit.
func (*ResponseSaga) SagaType ¶
func (s *ResponseSaga) SagaType() eh.SagaType
SagaType implements the SagaType method of the Saga interface.