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 BuildMongoConnectionString(uri, user, password, host, port, parameters string, logger libLog.Logger) string
- 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 SafeTimePtr(t *time.Time) time.Time
- 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 BuildMongoConnectionString ¶ added in v3.5.1
func BuildMongoConnectionString(uri, user, password, host, port, parameters string, logger libLog.Logger) string
BuildMongoConnectionString constructs a properly formatted MongoDB connection string. It ensures the correct format: scheme://user:password@host:port/?parameters
The trailing slash before the query string is required by the MongoDB URI specification when no database name is provided. This function centralizes connection string building to prevent formatting bugs across components.
Parameters:
- uri: The MongoDB scheme (e.g., "mongodb", "mongodb+srv")
- user: The username for authentication
- password: The password for authentication
- host: The MongoDB host address
- port: The MongoDB port number
- parameters: Optional query parameters (e.g., "replicaSet=rs0&authSource=admin")
- logger: Optional logger for debugging connection string construction (sensitive data is masked)
Returns the complete connection string ready for use with MongoDB drivers.
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 SafeTimePtr ¶ added in v3.5.0
SafeTimePtr safely dereferences a time pointer, returning zero time if nil
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.