63 lines
2.4 KiB
Go
63 lines
2.4 KiB
Go
package local
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"galaxy/user/internal/ports"
|
|
)
|
|
|
|
// NoopDomainEventPublisher validates and discards auxiliary user-domain
|
|
// events.
|
|
type NoopDomainEventPublisher struct{}
|
|
|
|
// PublishProfileChanged validates event and discards it.
|
|
func (NoopDomainEventPublisher) PublishProfileChanged(ctx context.Context, event ports.ProfileChangedEvent) error {
|
|
return validateNoopPublish(ctx, "publish profile changed event", event.Validate)
|
|
}
|
|
|
|
// PublishSettingsChanged validates event and discards it.
|
|
func (NoopDomainEventPublisher) PublishSettingsChanged(ctx context.Context, event ports.SettingsChangedEvent) error {
|
|
return validateNoopPublish(ctx, "publish settings changed event", event.Validate)
|
|
}
|
|
|
|
// PublishEntitlementChanged validates event and discards it.
|
|
func (NoopDomainEventPublisher) PublishEntitlementChanged(ctx context.Context, event ports.EntitlementChangedEvent) error {
|
|
return validateNoopPublish(ctx, "publish entitlement changed event", event.Validate)
|
|
}
|
|
|
|
// PublishSanctionChanged validates event and discards it.
|
|
func (NoopDomainEventPublisher) PublishSanctionChanged(ctx context.Context, event ports.SanctionChangedEvent) error {
|
|
return validateNoopPublish(ctx, "publish sanction changed event", event.Validate)
|
|
}
|
|
|
|
// PublishLimitChanged validates event and discards it.
|
|
func (NoopDomainEventPublisher) PublishLimitChanged(ctx context.Context, event ports.LimitChangedEvent) error {
|
|
return validateNoopPublish(ctx, "publish limit changed event", event.Validate)
|
|
}
|
|
|
|
// PublishDeclaredCountryChanged validates event and discards it.
|
|
func (NoopDomainEventPublisher) PublishDeclaredCountryChanged(ctx context.Context, event ports.DeclaredCountryChangedEvent) error {
|
|
return validateNoopPublish(ctx, "publish declared-country changed event", event.Validate)
|
|
}
|
|
|
|
func validateNoopPublish(ctx context.Context, operation string, validate func() error) error {
|
|
if ctx == nil {
|
|
return fmt.Errorf("%s: nil context", operation)
|
|
}
|
|
if err := ctx.Err(); err != nil {
|
|
return err
|
|
}
|
|
|
|
return validate()
|
|
}
|
|
|
|
var (
|
|
_ ports.ProfileChangedPublisher = NoopDomainEventPublisher{}
|
|
_ ports.SettingsChangedPublisher = NoopDomainEventPublisher{}
|
|
_ ports.EntitlementChangedPublisher = NoopDomainEventPublisher{}
|
|
_ ports.SanctionChangedPublisher = NoopDomainEventPublisher{}
|
|
_ ports.LimitChangedPublisher = NoopDomainEventPublisher{}
|
|
_ ports.DeclaredCountryChangedPublisher = NoopDomainEventPublisher{}
|
|
)
|