mirror of
https://github.com/hanzo-fi/payments.git
synced 2026-10-30 20:31:20 +00:00
46 lines
1.0 KiB
Go
46 lines
1.0 KiB
Go
package atlar
|
|
|
|
import (
|
|
"fmt"
|
|
"math/big"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/formancehq/payments/internal/models"
|
|
errorsutils "github.com/formancehq/payments/internal/utils/errors"
|
|
)
|
|
|
|
func ParseAtlarTimestamp(value string) (time.Time, error) {
|
|
return time.Parse(time.RFC3339Nano, value)
|
|
}
|
|
|
|
func validateTransferPayoutRequest(pi models.PSPPaymentInitiation) error {
|
|
if pi.SourceAccount == nil {
|
|
return errorsutils.NewWrappedError(
|
|
fmt.Errorf("source account is required in transfer/payout request"),
|
|
models.ErrInvalidRequest,
|
|
)
|
|
}
|
|
|
|
if pi.DestinationAccount == nil {
|
|
return errorsutils.NewWrappedError(
|
|
fmt.Errorf("destination account is required in transfer/payout request"),
|
|
models.ErrInvalidRequest,
|
|
)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func amountToString(amount big.Int, precision int) string {
|
|
raw := amount.String()
|
|
if precision < 0 {
|
|
precision = 0
|
|
}
|
|
insertPosition := len(raw) - precision
|
|
if insertPosition <= 0 {
|
|
return "0." + strings.Repeat("0", -insertPosition) + raw
|
|
}
|
|
return raw[:insertPosition] + "." + raw[insertPosition:]
|
|
}
|