cloudPosTransactionStatusFromString function
Parses a status string from the API into a CloudPosTransactionStatus.
Implementation
CloudPosTransactionStatus cloudPosTransactionStatusFromString(String value) {
switch (value) {
case 'Staged':
return CloudPosTransactionStatus.staged;
case 'Pushed':
return CloudPosTransactionStatus.pushed;
case 'PendingOnTerminal':
return CloudPosTransactionStatus.pendingOnTerminal;
case 'CardPresented':
return CloudPosTransactionStatus.cardPresented;
case 'Approved':
return CloudPosTransactionStatus.approved;
case 'Declined':
return CloudPosTransactionStatus.declined;
case 'TimedOut':
return CloudPosTransactionStatus.timedOut;
case 'Error':
return CloudPosTransactionStatus.error;
case 'InProgress':
return CloudPosTransactionStatus.pendingOnTerminal;
case 'Abandoned':
return CloudPosTransactionStatus.abandoned;
case 'Completed':
return CloudPosTransactionStatus.completed;
case 'Failed':
return CloudPosTransactionStatus.failed;
case 'TerminalBusy':
return CloudPosTransactionStatus.terminalBusy;
case 'Cancelled':
return CloudPosTransactionStatus.failed;
case 'Reassigned':
return CloudPosTransactionStatus.staged;
default:
// Defensive: unrecognised statuses are treated as non-terminal so
// the polling loop keeps running instead of immediately stopping.
assert(() {
debugPrint(
'### cloudpos WARNING: unrecognised transaction status "$value", '
'defaulting to staged',
);
return true;
}());
return CloudPosTransactionStatus.staged;
}
}