retryTransaction method

Future<CloudPosTransaction> retryTransaction(
  1. String transactionId
)

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'}',
  );
}