refactored payment orchestration
This commit is contained in:
117
api/pkg/model/account_role/account_role.go
Normal file
117
api/pkg/model/account_role/account_role.go
Normal file
@@ -0,0 +1,117 @@
|
||||
package account_role
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
accountrolev1 "github.com/tech/sendico/pkg/proto/common/account_role/v1"
|
||||
)
|
||||
|
||||
type AccountRole string
|
||||
|
||||
const (
|
||||
AccountRoleOperating AccountRole = "operating"
|
||||
AccountRoleHold AccountRole = "hold"
|
||||
AccountRoleTransit AccountRole = "transit"
|
||||
AccountRoleSettlement AccountRole = "settlement"
|
||||
AccountRoleClearing AccountRole = "clearing"
|
||||
AccountRolePending AccountRole = "pending"
|
||||
AccountRoleReserve AccountRole = "reserve"
|
||||
AccountRoleLiquidity AccountRole = "liquidity"
|
||||
AccountRoleFee AccountRole = "fee"
|
||||
AccountRoleChargeback AccountRole = "chargeback"
|
||||
AccountRoleAdjustment AccountRole = "adjustment"
|
||||
)
|
||||
|
||||
const (
|
||||
MetadataKeyFromRole = "from_role"
|
||||
MetadataKeyToRole = "to_role"
|
||||
)
|
||||
|
||||
func Parse(value string) (AccountRole, bool) {
|
||||
switch strings.ToUpper(strings.TrimSpace(value)) {
|
||||
case "ACCOUNT_ROLE_OPERATING", "OPERATING":
|
||||
return AccountRoleOperating, true
|
||||
case "ACCOUNT_ROLE_HOLD", "HOLD":
|
||||
return AccountRoleHold, true
|
||||
case "ACCOUNT_ROLE_TRANSIT", "TRANSIT":
|
||||
return AccountRoleTransit, true
|
||||
case "ACCOUNT_ROLE_SETTLEMENT", "SETTLEMENT":
|
||||
return AccountRoleSettlement, true
|
||||
case "ACCOUNT_ROLE_CLEARING", "CLEARING":
|
||||
return AccountRoleClearing, true
|
||||
case "ACCOUNT_ROLE_PENDING", "PENDING":
|
||||
return AccountRolePending, true
|
||||
case "ACCOUNT_ROLE_RESERVE", "RESERVE":
|
||||
return AccountRoleReserve, true
|
||||
case "ACCOUNT_ROLE_LIQUIDITY", "LIQUIDITY":
|
||||
return AccountRoleLiquidity, true
|
||||
case "ACCOUNT_ROLE_FEE", "FEE":
|
||||
return AccountRoleFee, true
|
||||
case "ACCOUNT_ROLE_CHARGEBACK", "CHARGEBACK":
|
||||
return AccountRoleChargeback, true
|
||||
case "ACCOUNT_ROLE_ADJUSTMENT", "ADJUSTMENT":
|
||||
return AccountRoleAdjustment, true
|
||||
case "ACCOUNT_ROLE_UNSPECIFIED", "UNSPECIFIED", "":
|
||||
return "", true
|
||||
default:
|
||||
return "", false
|
||||
}
|
||||
}
|
||||
|
||||
func ToProto(role AccountRole) accountrolev1.AccountRole {
|
||||
switch role {
|
||||
case AccountRoleOperating:
|
||||
return accountrolev1.AccountRole_OPERATING
|
||||
case AccountRoleHold:
|
||||
return accountrolev1.AccountRole_HOLD
|
||||
case AccountRoleTransit:
|
||||
return accountrolev1.AccountRole_TRANSIT
|
||||
case AccountRoleSettlement:
|
||||
return accountrolev1.AccountRole_SETTLEMENT
|
||||
case AccountRoleClearing:
|
||||
return accountrolev1.AccountRole_CLEARING
|
||||
case AccountRolePending:
|
||||
return accountrolev1.AccountRole_PENDING
|
||||
case AccountRoleReserve:
|
||||
return accountrolev1.AccountRole_RESERVE
|
||||
case AccountRoleLiquidity:
|
||||
return accountrolev1.AccountRole_LIQUIDITY
|
||||
case AccountRoleFee:
|
||||
return accountrolev1.AccountRole_FEE
|
||||
case AccountRoleChargeback:
|
||||
return accountrolev1.AccountRole_CHARGEBACK
|
||||
case AccountRoleAdjustment:
|
||||
return accountrolev1.AccountRole_ADJUSTMENT
|
||||
default:
|
||||
return accountrolev1.AccountRole_ACCOUNT_ROLE_UNSPECIFIED
|
||||
}
|
||||
}
|
||||
|
||||
func FromProto(role accountrolev1.AccountRole) AccountRole {
|
||||
switch role {
|
||||
case accountrolev1.AccountRole_OPERATING:
|
||||
return AccountRoleOperating
|
||||
case accountrolev1.AccountRole_HOLD:
|
||||
return AccountRoleHold
|
||||
case accountrolev1.AccountRole_TRANSIT:
|
||||
return AccountRoleTransit
|
||||
case accountrolev1.AccountRole_SETTLEMENT:
|
||||
return AccountRoleSettlement
|
||||
case accountrolev1.AccountRole_CLEARING:
|
||||
return AccountRoleClearing
|
||||
case accountrolev1.AccountRole_PENDING:
|
||||
return AccountRolePending
|
||||
case accountrolev1.AccountRole_RESERVE:
|
||||
return AccountRoleReserve
|
||||
case accountrolev1.AccountRole_LIQUIDITY:
|
||||
return AccountRoleLiquidity
|
||||
case accountrolev1.AccountRole_FEE:
|
||||
return AccountRoleFee
|
||||
case accountrolev1.AccountRole_CHARGEBACK:
|
||||
return AccountRoleChargeback
|
||||
case accountrolev1.AccountRole_ADJUSTMENT:
|
||||
return AccountRoleAdjustment
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user