Quotation
This commit is contained in:
@@ -160,16 +160,20 @@ String insufficientNetPolicyToValue(InsufficientNetPolicy policy) {
|
||||
PaymentType endpointTypeFromValue(String? value) {
|
||||
switch (value) {
|
||||
case 'managedWallet':
|
||||
case 'managed_wallet':
|
||||
return PaymentType.managedWallet;
|
||||
case 'externalChain':
|
||||
case 'external_chain':
|
||||
return PaymentType.externalChain;
|
||||
case 'card':
|
||||
return PaymentType.card;
|
||||
case 'cardToken':
|
||||
case 'card_token':
|
||||
return PaymentType.cardToken;
|
||||
case 'ledger':
|
||||
return PaymentType.ledger;
|
||||
case 'bankAccount':
|
||||
case 'bank_account':
|
||||
return PaymentType.bankAccount;
|
||||
case 'iban':
|
||||
return PaymentType.iban;
|
||||
@@ -185,15 +189,15 @@ String endpointTypeToValue(PaymentType type) {
|
||||
case PaymentType.ledger:
|
||||
return 'ledger';
|
||||
case PaymentType.managedWallet:
|
||||
return 'managedWallet';
|
||||
return 'managed_wallet';
|
||||
case PaymentType.externalChain:
|
||||
return 'externalChain';
|
||||
return 'external_chain';
|
||||
case PaymentType.card:
|
||||
return 'card';
|
||||
case PaymentType.cardToken:
|
||||
return 'cardToken';
|
||||
return 'card';
|
||||
case PaymentType.bankAccount:
|
||||
return 'bankAccount';
|
||||
return 'bank_account';
|
||||
case PaymentType.iban:
|
||||
return 'iban';
|
||||
case PaymentType.wallet:
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:pshared/data/dto/payment/external_chain.dart';
|
||||
import 'package:pshared/data/dto/payment/ledger.dart';
|
||||
import 'package:pshared/data/dto/payment/managed_wallet.dart';
|
||||
import 'package:pshared/data/mapper/payment/asset.dart';
|
||||
import 'package:pshared/data/mapper/payment/enums.dart';
|
||||
import 'package:pshared/data/mapper/payment/type.dart';
|
||||
import 'package:pshared/models/payment/methods/card.dart';
|
||||
import 'package:pshared/models/payment/methods/card_token.dart';
|
||||
@@ -23,7 +24,7 @@ extension PaymentMethodDataEndpointMapper on PaymentMethodData {
|
||||
case PaymentType.ledger:
|
||||
final payload = this as LedgerPaymentMethod;
|
||||
return PaymentEndpointDTO(
|
||||
type: paymentTypeToValue(type),
|
||||
type: endpointTypeToValue(type),
|
||||
data: LedgerEndpointDTO(
|
||||
ledgerAccountRef: payload.ledgerAccountRef,
|
||||
contraLedgerAccountRef: payload.contraLedgerAccountRef,
|
||||
@@ -33,7 +34,7 @@ extension PaymentMethodDataEndpointMapper on PaymentMethodData {
|
||||
case PaymentType.managedWallet:
|
||||
final payload = this as ManagedWalletPaymentMethod;
|
||||
return PaymentEndpointDTO(
|
||||
type: paymentTypeToValue(type),
|
||||
type: endpointTypeToValue(type),
|
||||
data: ManagedWalletEndpointDTO(
|
||||
managedWalletRef: payload.managedWalletRef,
|
||||
asset: payload.asset?.toDTO(),
|
||||
@@ -43,7 +44,7 @@ extension PaymentMethodDataEndpointMapper on PaymentMethodData {
|
||||
case PaymentType.externalChain:
|
||||
final payload = this as CryptoAddressPaymentMethod;
|
||||
return PaymentEndpointDTO(
|
||||
type: paymentTypeToValue(type),
|
||||
type: endpointTypeToValue(type),
|
||||
data: ExternalChainEndpointDTO(
|
||||
asset: payload.asset?.toDTO(),
|
||||
address: payload.address,
|
||||
@@ -54,7 +55,7 @@ extension PaymentMethodDataEndpointMapper on PaymentMethodData {
|
||||
case PaymentType.card:
|
||||
final payload = this as CardPaymentMethod;
|
||||
return PaymentEndpointDTO(
|
||||
type: paymentTypeToValue(type),
|
||||
type: endpointTypeToValue(type),
|
||||
data: CardEndpointDTO(
|
||||
pan: payload.pan,
|
||||
expMonth: payload.expMonth,
|
||||
@@ -68,7 +69,7 @@ extension PaymentMethodDataEndpointMapper on PaymentMethodData {
|
||||
case PaymentType.cardToken:
|
||||
final payload = this as CardTokenPaymentMethod;
|
||||
return PaymentEndpointDTO(
|
||||
type: paymentTypeToValue(type),
|
||||
type: endpointTypeToValue(type),
|
||||
data: CardTokenEndpointDTO(
|
||||
token: payload.token,
|
||||
maskedPan: payload.maskedPan,
|
||||
@@ -85,7 +86,7 @@ extension PaymentEndpointDTOMapper on PaymentEndpointDTO {
|
||||
PaymentMethodData toDomain() {
|
||||
final metadata = this.metadata;
|
||||
|
||||
switch (paymentTypeFromValue(type)) {
|
||||
switch (_resolveEndpointType(type, data)) {
|
||||
case PaymentType.ledger:
|
||||
final payload = LedgerEndpointDTO.fromJson(data);
|
||||
return LedgerPaymentMethod(
|
||||
@@ -131,3 +132,10 @@ extension PaymentEndpointDTOMapper on PaymentEndpointDTO {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PaymentType _resolveEndpointType(String type, Map<String, dynamic> data) {
|
||||
if (type == 'card' && (data.containsKey('token') || data.containsKey('masked_pan'))) {
|
||||
return PaymentType.cardToken;
|
||||
}
|
||||
return endpointTypeFromValue(type);
|
||||
}
|
||||
|
||||
@@ -3,12 +3,13 @@ import 'package:pshared/data/mapper/payment/fee_line.dart';
|
||||
import 'package:pshared/data/mapper/payment/fx_quote.dart';
|
||||
import 'package:pshared/data/mapper/payment/money.dart';
|
||||
import 'package:pshared/data/mapper/payment/network_fee.dart';
|
||||
import 'package:pshared/models/payment/quote.dart';
|
||||
import 'package:pshared/models/payment/quote/quote.dart';
|
||||
|
||||
|
||||
extension PaymentQuoteDTOMapper on PaymentQuoteDTO {
|
||||
PaymentQuote toDomain() => PaymentQuote(
|
||||
PaymentQuote toDomain({String? idempotencyKey}) => PaymentQuote(
|
||||
quoteRef: quoteRef,
|
||||
idempotencyKey: idempotencyKey,
|
||||
debitAmount: debitAmount?.toDomain(),
|
||||
expectedSettlementAmount: expectedSettlementAmount?.toDomain(),
|
||||
expectedFeeTotal: expectedFeeTotal?.toDomain(),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:pshared/data/dto/payment/quote_aggregate.dart';
|
||||
import 'package:pshared/data/mapper/payment/money.dart';
|
||||
import 'package:pshared/models/payment/quote_aggregate.dart';
|
||||
import 'package:pshared/models/payment/quote/aggregate.dart';
|
||||
|
||||
|
||||
extension PaymentQuoteAggregateDTOMapper on PaymentQuoteAggregateDTO {
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:pshared/data/dto/payment/quotes.dart';
|
||||
import 'package:pshared/data/mapper/payment/payment_quote.dart';
|
||||
import 'package:pshared/data/mapper/payment/quote_aggregate.dart';
|
||||
import 'package:pshared/models/payment/quotes.dart';
|
||||
import 'package:pshared/data/mapper/payment/quote/aggregate.dart';
|
||||
import 'package:pshared/models/payment/quote/quotes.dart';
|
||||
|
||||
|
||||
extension PaymentQuotesDTOMapper on PaymentQuotesDTO {
|
||||
@@ -9,13 +9,11 @@ extension PaymentQuotesDTOMapper on PaymentQuotesDTO {
|
||||
quoteRef: quoteRef,
|
||||
aggregate: aggregate?.toDomain(),
|
||||
quotes: quotes?.map((quote) => quote.toDomain()).toList(),
|
||||
idempotencyKey: idempotencyKey
|
||||
);
|
||||
}
|
||||
|
||||
extension PaymentQuotesMapper on PaymentQuotes {
|
||||
PaymentQuotesDTO toDTO() => PaymentQuotesDTO(
|
||||
idempotencyKey: idempotencyKey,
|
||||
quoteRef: quoteRef,
|
||||
aggregate: aggregate?.toDTO(),
|
||||
quotes: quotes?.map((quote) => quote.toDTO()).toList(),
|
||||
Reference in New Issue
Block a user