preProcessTransactionService function

Future<Map<String, dynamic>> preProcessTransactionService(
  1. BuildContext context,
  2. {required double transactionAmount,
  3. required int currencyId,
  4. required int bankAccountId,
  5. required String email1,
  6. required String email2,
  7. required String email3,
  8. required String description}
)

Implementation

Future<Map<String, dynamic>> preProcessTransactionService(
  BuildContext context, {
  required double transactionAmount,
  required int currencyId,
  required int bankAccountId,
  required String email1,
  required String email2,
  required String email3,
  required String description,
}) async {
  final bool internetStatus = await checkInternetConnection();

  if (!internetStatus) {
    Transitions(
      context: context,
      child: const NoInternetPage(),
      removeUntil: true,
    );
    return <String, dynamic>{
      'no_network': internetStatus,
    };
  }

  final Box<MyAccountModel> userBox = Hive.box('user');

  final http.Response response = await http.post(
    Uri.parse(
      '${ServicesEnvironment.protocol}${ServicesEnvironment.authority}${ServicesEnvironment.unencodedPath}$_endPoint',
    ),
    headers: <String, String>{
      'Content-Type': 'application/json; charset=utf-8',
      'Authorization': 'Bearer ${userBox.get('user')!.token}',
    },
    body: json.encode(
      <String, dynamic>{
        "transaction_amount": transactionAmount,
        "currency_id": currencyId,
        "bank_account_id": bankAccountId,
        "email_1": email1,
        "email_2": email2,
        "email_3": email3,
        "description": description,
      },
    ),
  );

  Map<String, dynamic> decodedResponse;

  try {
    decodedResponse = json.decode(response.body);
  } catch (exception) {
    return Future.error(GlobalMessagesEnvironment.genericError);
  }

  return decodedResponse;
}