setStoneTransaction method
void
setStoneTransaction(
- String message
)
Implementation
void setStoneTransaction(String message) {
try {
if (message.contains('{')) {
final map = json.decode(message);
log('setStoneTransaction: $map');
log('***METHOD: ${map['method']}');
switch (map['method']) {
case 'active':
final message = (map['message'] ?? '').toString().toLowerCase();
if (message.contains('terminal ativado')) {
lastStatus = const StoneStatusActivate();
} else {
lastStatus = StoneStatusActivateError(message: map['message'] ?? 'Erro ao ativar o terminal');
}
_emit(lastStatus!);
return;
case 'cancel':
lastStatus = StoneStatusCanceled(cancelExtraData: map);
_emit(lastStatus!);
return;
case 'transaction':
final transaction = StoneTransactionModel.fromMap(map);
lastStatus = StoneStatusTransaction(transaction: transaction);
_emit(lastStatus!);
return;
case 'QRCode':
final transaction = StoneTransactionModel.fromMap(map);
lastStatus = StoneQRCodeTransaction(transaction: transaction);
_emit(lastStatus!);
return;
case 'printerTransaction':
lastStatus = const StonePrinterCustomer();
_emit(lastStatus!);
return;
}
}
} catch (e) {
log('***Erro setStoneTransaction: $e');
}
}