feat: add durable Kuknos settlement coordination
This commit is contained in:
@@ -5,18 +5,27 @@ import (
|
||||
|
||||
"gl/application/health"
|
||||
applicationledger "gl/application/ledger"
|
||||
applicationsettlement "gl/application/settlement"
|
||||
basev1 "gl/gen/base/v1"
|
||||
ledgerv1 "gl/gen/ledger/v1"
|
||||
)
|
||||
|
||||
type Handler struct {
|
||||
ledgerv1.UnimplementedGeneralLedgerServiceServer
|
||||
health *health.Service
|
||||
ledger *applicationledger.Service
|
||||
health *health.Service
|
||||
ledger *applicationledger.Service
|
||||
settlement *applicationsettlement.Service
|
||||
adminToken string
|
||||
}
|
||||
|
||||
func NewHandler(healthService *health.Service, ledgerService *applicationledger.Service) *Handler {
|
||||
return &Handler{health: healthService, ledger: ledgerService}
|
||||
func (h *Handler) WithSettlementAdminToken(token string) *Handler { h.adminToken = token; return h }
|
||||
|
||||
func NewHandler(healthService *health.Service, ledgerService *applicationledger.Service, settlementService ...*applicationsettlement.Service) *Handler {
|
||||
var settlement *applicationsettlement.Service
|
||||
if len(settlementService) > 0 {
|
||||
settlement = settlementService[0]
|
||||
}
|
||||
return &Handler{health: healthService, ledger: ledgerService, settlement: settlement}
|
||||
}
|
||||
|
||||
func NewHealthHandler(service *health.Service) *Handler {
|
||||
@@ -26,7 +35,13 @@ func NewHealthHandler(service *health.Service) *Handler {
|
||||
func (h *Handler) Health(ctx context.Context, _ *basev1.Empty) (*ledgerv1.HealthResponse, error) {
|
||||
result := h.health.Check(ctx)
|
||||
return &ledgerv1.HealthResponse{
|
||||
Serving: result.Serving,
|
||||
DatabaseReady: result.DatabaseReady,
|
||||
Serving: result.Serving,
|
||||
DatabaseReady: result.DatabaseReady,
|
||||
SettlementEnabled: result.SettlementEnabled,
|
||||
SettlementReady: result.SettlementReady,
|
||||
SettlementPending: result.SettlementStats.Pending,
|
||||
SettlementRetryable: result.SettlementStats.Retryable,
|
||||
SettlementManualReview: result.SettlementStats.ManualReview,
|
||||
OldestPendingSeconds: result.SettlementStats.OldestPendingSeconds,
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user