32 lines
817 B
Go
32 lines
817 B
Go
package graph
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/apex/log"
|
|
"gitlab.com/unboundsoftware/eventsourced/eventsourced"
|
|
|
|
"gitlab.com/unboundsoftware/schemas/cache"
|
|
)
|
|
|
|
//go:generate go run github.com/99designs/gqlgen
|
|
|
|
// This file will not be regenerated automatically.
|
|
//
|
|
// It serves as dependency injection for your app, add any dependencies you require here.
|
|
|
|
type Publisher interface {
|
|
Publish(ctx context.Context, event eventsourced.Event) error
|
|
}
|
|
|
|
type Resolver struct {
|
|
EventStore eventsourced.EventStore
|
|
Publisher Publisher
|
|
Logger log.Interface
|
|
Cache *cache.Cache
|
|
}
|
|
|
|
func (r *Resolver) handler(ctx context.Context, aggregate eventsourced.Aggregate) (eventsourced.CommandHandler, error) {
|
|
return eventsourced.NewHandler(ctx, aggregate, r.EventStore, eventsourced.WithEventPublisher(r.Publisher))
|
|
}
|