abandonTransaction method

Future<CloudPosTransaction> abandonTransaction(
  1. String transactionId
)

Abandons a staged or in-progress transaction.

Implementation

Future<CloudPosTransaction> abandonTransaction(String transactionId) async {
  final url =
      '$baseUrl/cloudpos/api/cloudpos/transactions/$transactionId/abandon';

  _logger.info(this, 'abandonTransaction: $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, 'abandonTransaction succeeded');
    return CloudPosTransaction.fromJson(data);
  }

  throw PlatformException(
    code: 'ABANDON_FAILED',
    message:
        'Failed to abandon transaction: ${response?.statusCode ?? 'no response'}',
  );
}