refactored notificatoin / tgsettle responsibility boundaries

This commit is contained in:
Stephan D
2026-02-19 18:56:59 +01:00
parent 47f0a3d890
commit 2fd8a6ebb7
73 changed files with 3705 additions and 681 deletions

View File

@@ -58,6 +58,29 @@ func (crp *ConfirmationResultProcessor) GetSubject() model.NotificationEvent {
return crp.event
}
type ConfirmationDispatchProcessor struct {
logger mlogger.Logger
handler ch.ConfirmationDispatchHandler
event model.NotificationEvent
}
func (cdp *ConfirmationDispatchProcessor) Process(ctx context.Context, envelope me.Envelope) error {
var msg model.ConfirmationRequestDispatch
if err := json.Unmarshal(envelope.GetData(), &msg); err != nil {
cdp.logger.Warn("Failed to decode confirmation dispatch envelope", zap.Error(err), zap.String("topic", cdp.event.ToString()))
return err
}
if cdp.handler == nil {
cdp.logger.Warn("Confirmation dispatch handler is not configured", zap.String("topic", cdp.event.ToString()))
return nil
}
return cdp.handler(ctx, &msg)
}
func (cdp *ConfirmationDispatchProcessor) GetSubject() model.NotificationEvent {
return cdp.event
}
func NewConfirmationRequestProcessor(logger mlogger.Logger, handler ch.ConfirmationRequestHandler) np.EnvelopeProcessor {
if logger != nil {
logger = logger.Named("confirmation_request_processor")
@@ -79,3 +102,14 @@ func NewConfirmationResultProcessor(logger mlogger.Logger, sourceService, rail s
event: confirmationResultEvent(sourceService, rail),
}
}
func NewConfirmationDispatchProcessor(logger mlogger.Logger, sourceService, rail string, handler ch.ConfirmationDispatchHandler) np.EnvelopeProcessor {
if logger != nil {
logger = logger.Named("confirmation_dispatch_processor")
}
return &ConfirmationDispatchProcessor{
logger: logger,
handler: handler,
event: confirmationDispatchEvent(sourceService, rail),
}
}