Documentation
¶
Index ¶
- Constants
- Variables
- func AccountingRoutesInternalKey(organizationID, ledgerID, key uuid.UUID) string
- func BalanceInternalKey(organizationID, ledgerID uuid.UUID, key string) string
- func BoolPtr(b bool) *bool
- func EnvFallback(prefixed, fallback string) string
- func EnvFallbackInt(prefixed, fallback int) int
- func ExtractMongoPortAndParameters(port, parameters string, logger libLog.Logger) (string, string)
- func Float64Ptr(f64 float64) *float64
- func FullJitter(baseDelay time.Duration) time.Duration
- func IdempotencyInternalKey(organizationID, ledgerID uuid.UUID, key string) string
- func IdempotencyReverseKey(organizationID, ledgerID uuid.UUID, transactionID string) string
- func IntPtr(i int) *int
- func NextBackoff(current time.Duration) time.Duration
- func PendingTransactionLockKey(organizationID, ledgerID uuid.UUID, transactionID string) string
- func RedisConsumerLockKey(organizationID, ledgerID uuid.UUID, transactionID string) string
- func SanitizeAccountAliases(parserDSL *pkgTransaction.Transaction)
- func StringPtr(s string) *string
- func TransactionInternalKey(organizationID, ledgerID uuid.UUID, key string) string
- func ValidateAccountType(t string) error
- func ValidateCode(code string) error
- func ValidateCountryAddress(country string) error
- func ValidateCurrency(code string) error
- func ValidateType(t string) error
Constants ¶
const ( MaxRetries = 5 InitialBackoff = 500 * time.Millisecond MaxBackoff = 10 * time.Second BackoffFactor = 2.0 )
const BalanceSyncLockPrefix = "lock:{transactions}:balance-sync:"
const BalanceSyncScheduleKey = "schedule:{transactions}:balance-sync"
Variables ¶
var (
BalanceSynced = metrics.Metric{
Name: "balance_synced",
Unit: "1",
Description: "Measures the number of balances synced.",
}
)
Functions ¶
func AccountingRoutesInternalKey ¶ added in v3.5.0
AccountingRoutesInternalKey returns a key with the following format to be used on redis cluster: "accounting_routes:{organizationID:ledgerID:key}"
func BalanceInternalKey ¶ added in v3.3.6
BalanceInternalKey returns a key with the following format to be used on redis cluster: "balance:{transactions}:organizationID:ledgerID:key"
func EnvFallback ¶ added in v3.5.0
EnvFallback returns the prefixed value if not empty, otherwise returns the fallback value. This is useful for supporting both prefixed env vars (e.g., DB_ONBOARDING_HOST) with fallback to non-prefixed (e.g., DB_HOST) for backward compatibility.
func EnvFallbackInt ¶ added in v3.5.0
EnvFallbackInt returns the prefixed value if not zero, otherwise returns the fallback value. This is useful for supporting both prefixed env vars with fallback to non-prefixed for backward compatibility.
func ExtractMongoPortAndParameters ¶ added in v3.4.8
ExtractMongoPortAndParameters handles backward compatibility for MongoDB connection configuration. MONGO_PORT=5703/replicaSet=rs0&authSource=admin&directConnection=true
This function extracts the actual port and parameters from such configurations. If MONGO_PARAMETERS is already set, it takes precedence over embedded parameters.
DEPRECATED: This backward compatibility for embedded parameters in MONGO_PORT will be removed in Midaz 4.0.0. Update environment variables to use the MONGO_PARAMETERS environment variable.
func Float64Ptr ¶ added in v3.5.0
func FullJitter ¶
FullJitter returns a random delay between [0, baseDelay], capped by MaxBackoff.
func IdempotencyInternalKey ¶ added in v3.5.0
IdempotencyInternalKey returns a key with the following format to be used on redis cluster: "idempotency:{organizationID:ledgerID:key}"
func IdempotencyReverseKey ¶ added in v3.3.11
IdempotencyReverseKey returns a key with the following format to be used on redis cluster: "idempotency_reverse:{organizationID:ledgerID}:transactionID" This key maps a transactionID to its idempotency key for reverse lookups.
func NextBackoff ¶
NextBackoff calculates the next exponential backoff, respecting the MaxBackoff capped.
func PendingTransactionLockKey ¶ added in v3.5.0
PendingTransactionLockKey returns a key with the following format to be used on redis cluster: "pending_transaction:{transaction}:organizationID:ledgerID:transactionID" This key is used to lock pending transactions during commit/cancel operations.
func RedisConsumerLockKey ¶ added in v3.3.11
RedisConsumerLockKey returns a key with the following format to be used on redis cluster: "redis_consumer_lock:{organizationID:ledgerID}:transactionID" This key is used to prevent duplicate processing of the same transaction across multiple pods.
func SanitizeAccountAliases ¶ added in v3.3.13
func SanitizeAccountAliases(parserDSL *pkgTransaction.Transaction)
SanitizeAccountAliases cleans the AccountAlias fields in a Transaction's FromTo entries. This is necessary because HandleAccountFields mutates aliases in-place using ConcatAlias, producing formats like "0#@alias#key". SplitAlias extracts the original alias back.
func TransactionInternalKey ¶ added in v3.3.6
TransactionInternalKey returns a key with the following format to be used on redis cluster: "transaction:{transactions}:organizationID:ledgerID:key"
func ValidateAccountType ¶ added in v3.5.0
ValidateAccountType validate type values of accounts
func ValidateCode ¶ added in v3.5.0
func ValidateCountryAddress ¶ added in v3.5.0
ValidateCountryAddress validate if country in object address contains in countries list using ISO 3166-1 alpha-2
func ValidateCurrency ¶ added in v3.5.0
ValidateCurrency validate if code contains in currencies list using ISO 4217
func ValidateType ¶ added in v3.5.0
ValidateType validate type values of currencies
Types ¶
This section is empty.