HostResponse.fromMap constructor
HostResponse.fromMap(
- Map<String, dynamic>? map
)
Implementation
factory HostResponse.fromMap(Map<String, dynamic>? map) {
if (map == null) return const HostResponse();
// Helper to get string, handling potential type mismatches
String? getString(String key) => map[key]?.toString();
return HostResponse(
expressResponseCode:
getString('expressResponseCode') ?? getString('ExpressResponseCode'),
expressResponseMessage:
getString('expressResponseMessage') ??
getString('ExpressResponseMessage'),
hostResponseCode:
getString('hostResponseCode') ?? getString('HostResponseCode'),
expressTransactionDate:
getString('expressTransactionDate') ??
getString('ExpressTransactionDate'),
expressTransactionTime:
getString('expressTransactionTime') ??
getString('ExpressTransactionTime'),
expressTransactionTimezone:
getString('expressTransactionTimezone') ??
getString('ExpressTransactionTimezone'),
hostBatchId: getString('hostBatchId') ?? getString('HostBatchID'),
hostItemId: getString('hostItemId') ?? getString('HostItemID'),
hostBatchAmount:
getString('hostBatchAmount') ?? getString('HostBatchAmount'),
cardLogo: getString('cardLogo') ?? getString('CardLogo'),
emvData: getString('emvData') ?? getString('EMVData'),
cardNumberMasked:
getString('cardNumberMasked') ?? getString('CardNumberMasked'),
bin: getString('bin') ?? getString('BIN'),
transactionId:
getString('transactionId') ??
getString('TransactionID') ??
getString('xmlTransactionId'),
approvalNumber:
getString('approvalNumber') ?? getString('ApprovalNumber'),
referenceNumber:
getString('referenceNumber') ?? getString('ReferenceNumber'),
processorName: getString('processorName') ?? getString('ProcessorName'),
transactionStatus:
getString('transactionStatus') ?? getString('TransactionStatus'),
transactionStatusCode:
getString('transactionStatusCode') ??
getString('TransactionStatusCode'),
hostTransactionId:
getString('hostTransactionId') ?? getString('HostTransactionID'),
pinlessPOSConversionIndicator:
getString('pinlessPOSConversionIndicator') ??
getString('PINlessPOSConversionIndicator'),
retrievalReferenceNumber:
getString('retrievalReferenceNumber') ??
getString('RetrievalReferenceNumber'),
systemTraceAuditNumber:
getString('systemTraceAuditNumber') ??
getString('SystemTraceAuditNumber'),
tokenId: getString('tokenId') ?? getString('TokenID'),
tokenProvider: getString('tokenProvider') ?? getString('TokenProvider'),
// Alias mapping
authCode: getString('authCode') ?? getString('ApprovalNumber'),
responseCode: getString('responseCode') ?? getString('HostResponseCode'),
responseMessage:
getString('responseMessage') ?? getString('ExpressResponseMessage'),
traceNumber:
getString('traceNumber') ?? getString('SystemTraceAuditNumber'),
batchNumber: getString('batchNumber') ?? getString('HostBatchID'),
hostResponseMessage: getString(
'hostResponseMessage',
), // Usually not in XML directly if HostResponseCode is
xmlTransactionId:
getString('xmlTransactionId') ?? getString('TransactionID'),
);
}