All checks were successful
Go CI/CD / go-ci (push) Successful in 36s
Introduces the 'Singularity' implementation, a CQRS Bus that supports commands, queries, and events, along with middleware extensibility. Includes comprehensive tests, modular files for commands, queries, and events, as well as CI/CD workflows.
22 lines
406 B
Go
22 lines
406 B
Go
package cqrs
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
type Query interface{}
|
|
|
|
type QueryHandler interface {
|
|
Handle(ctx context.Context, query Query) (interface{}, error)
|
|
}
|
|
|
|
type QueryHandlerFunc func(ctx context.Context, query Query) (Query, error)
|
|
|
|
func (f QueryHandlerFunc) Handle(ctx context.Context, query Query) (
|
|
interface{}, error,
|
|
) {
|
|
return f(ctx, query)
|
|
}
|
|
|
|
type QueryMiddleware func(QueryHandler) QueryHandler
|