retryTransaction method
Retries a failed or timed-out transaction.
Implementation
Future<CloudPosTransaction> retryTransaction(String transactionId) async {
final url =
'$baseUrl/cloudpos/api/cloudpos/transactions/$transactionId/retry';
_logger.info(this, 'retryTransaction: $transactionId');
final response = await _httpClient.post(
url: url,
user: _authService.user,
requestData: '{}',
additionalHeaders: {'Content-Type': 'application/json'},
);
if (response != null && response.statusCode == HttpStatus.ok) {
final data = response.data is String
? jsonDecode(response.data as String) as Map<String, dynamic>
: response.data as Map<String, dynamic>;
_logger.debug(this, 'retryTransaction succeeded');
return CloudPosTransaction.fromJson(data);
}
throw PlatformException(
code: 'RETRY_FAILED',
message:
'Failed to retry transaction: ${response?.statusCode ?? 'no response'}',
);
}