Bootstrap copied BFF and local accounts with public Sendico contracts (#34)

This commit is contained in:
Stephan D committed 2026-09-12 13:37:48 +02:00
1 parent 67dc5b5b1e
commit 7062672a87
556 files changed
+42291 -777

No files matched your search

+105
View File
@@ -0,0 +1,105 @@
package merrors
import (
"errors"
"strings"
)
func Reason(err error) (string, bool) {
var reasoned interface {
Reason() string
}
if errors.As(err, &reasoned) {
reason := strings.TrimSpace(reasoned.Reason())
if reason != "" {
return reason, true
}
}
switch {
case errors.Is(err, ErrAMLSourceIdempotencyConflict):
return ReasonAMLSourceIdempotencyConflict, true
case errors.Is(err, ErrLedgerIdempotencyConflict):
return ReasonLedgerIdempotencyConflict, true
case errors.Is(err, ErrLedgerCommandIdentityMismatch):
return ReasonLedgerCommandIdentityMismatch, true
case errors.Is(err, ErrLedgerAccessViolation):
return ReasonLedgerAccessViolation, true
case errors.Is(err, ErrAccountNotEligible):
return ReasonAccountNotEligible, true
case errors.Is(err, ErrQuotationFeeConfigurationMissing):
return QuotationFeeConfigurationMissingCode, true
case errors.Is(err, ErrQuotationReplayMissing):
return QuotationReplayMissingCode, true
default:
return "", false
}
}
func FromReason(reason string, msg string) (error, bool) {
switch strings.TrimSpace(reason) {
case ReasonRouteNotFound:
return RouteNotFound(msg), true
case ReasonRouteAmbiguous:
return RouteAmbiguous(msg), true
case ReasonRouteDisabled:
return RouteDisabled(msg), true
case ReasonRouteInvalidSource:
return RouteInvalidSource(msg), true
case ReasonRouteDestinationNotFound:
return RouteDestinationNotFound(msg), true
case ReasonRouteDestinationInactive:
return RouteDestinationInactive(msg), true
case ReasonRouteDestinationCurrencyMismatch:
return RouteDestinationCurrencyMismatch(msg), true
case ReasonRouteDestinationOrgMismatch:
return RouteDestinationOrgMismatch(msg), true
case ReasonRouteDestinationAmbiguous:
return RouteDestinationAmbiguous(msg), true
case ReasonRouteDestinationOwnerMismatch:
return RouteDestinationOwnerMismatch(msg), true
case ReasonRouteActiveSourceConflict:
return RouteActiveSourceConflict(msg), true
case ReasonRouteDestinationTypeMismatch:
return RouteDestinationTypeMismatch(msg), true
case ReasonRouteDestinationRoleMismatch:
return RouteDestinationRoleMismatch(msg), true
case ReasonRouteIdempotencyConflict:
return RouteIdempotencyConflict(msg), true
case ReasonRouteVersionConflict:
return RouteVersionConflict(msg), true
case ReasonRouteInvalidState:
return RouteInvalidState(msg), true
case ReasonAMLSourceIdempotencyConflict:
return AMLSourceIdempotencyConflict(msg), true
case ReasonLedgerIdempotencyConflict:
return LedgerIdempotencyConflict(msg), true
case ReasonLedgerCommandIdentityMismatch:
return LedgerCommandIdentityMismatch(msg), true
case ReasonLedgerAccessViolation:
return LedgerAccessViolation(msg), true
case ReasonAccountNotEligible:
return AccountNotEligible(msg), true
case ReasonDocumentsReportOwned:
return DocumentsReportOwned(msg), true
case ReasonDocumentsQuotationExpired:
return DocumentsQuotationExpired(msg), true
case ReasonPaymentExecutionNotAccepted:
return PaymentExecutionNotAccepted(msg), true
case QuotationFeeConfigurationMissingCode:
return QuotationFeeConfigurationMissing(), true
case QuotationReplayMissingCode:
return QuotationReplayMissing(), true
case ReasonOrganizationProvisioningInProgress:
return OrganizationProvisioningInProgress(msg), true
case ReasonOrganizationAlreadyActive:
return OrganizationAlreadyActive(msg), true
case ReasonOrganizationProvisioningBlocked:
return OrganizationProvisioningBlocked(msg), true
case ReasonOrganizationOwnerMismatch:
return OrganizationOwnerMismatch(msg), true
case ReasonOrganizationNotOperatorProvisioned:
return OrganizationNotOperatorProvisioned(msg), true
default:
return nil, false
}
}