mirror of
https://github.com/hanzo-fi/stack.git
synced 2026-10-30 20:34:43 +00:00
42 lines
1.3 KiB
Go
42 lines
1.3 KiB
Go
package backend
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/formancehq/stack/libs/go-libs/bun/bunpaginate"
|
|
|
|
"github.com/formancehq/reconciliation/internal/api/service"
|
|
"github.com/formancehq/reconciliation/internal/models"
|
|
"github.com/formancehq/reconciliation/internal/storage"
|
|
)
|
|
|
|
//go:generate mockgen -source backend.go -destination backend_generated.go -package backend . Service
|
|
type Service interface {
|
|
Reconciliation(ctx context.Context, policyID string, req *service.ReconciliationRequest) (*models.Reconciliation, error)
|
|
GetReconciliation(ctx context.Context, id string) (*models.Reconciliation, error)
|
|
ListReconciliations(ctx context.Context, q storage.GetReconciliationsQuery) (*bunpaginate.Cursor[models.Reconciliation], error)
|
|
|
|
CreatePolicy(ctx context.Context, req *service.CreatePolicyRequest) (*models.Policy, error)
|
|
DeletePolicy(ctx context.Context, id string) error
|
|
GetPolicy(ctx context.Context, id string) (*models.Policy, error)
|
|
ListPolicies(ctx context.Context, q storage.GetPoliciesQuery) (*bunpaginate.Cursor[models.Policy], error)
|
|
}
|
|
|
|
type Backend interface {
|
|
GetService() Service
|
|
}
|
|
|
|
type DefaultBackend struct {
|
|
service Service
|
|
}
|
|
|
|
func (d DefaultBackend) GetService() Service {
|
|
return d.service
|
|
}
|
|
|
|
func NewDefaultBackend(service Service) Backend {
|
|
return &DefaultBackend{
|
|
service: service,
|
|
}
|
|
}
|