deposit method

Future<String?> deposit({
  1. required String phoneNumber,
  2. required String amount,
  3. required QosicNetwork network,
})

Send money to the given phoneNumber

Implementation

Future<String?> deposit({
  required String phoneNumber,
  required String amount,
  required QosicNetwork network,
}) async {
  final currentContry = getCountryFromNumber(phoneNumber);

  String? transactionReference;

  final baseUrl =
      currentContry == QosicCountry.benin ? Endpoints.bjUrl : Endpoints.tgUrl;

  try {
    await dio.post(
      baseUrl + Endpoints.deposit,
      data: {
        'msisdn': phoneNumber,
        'amount': amount,
        'transref': makeID(10),
        'clientid': network == QosicNetwork.mtn ? mtnKey : moovKey
      },
    ).then((value) {
      transactionReference = value.data['transref'] as String;
    });
  } on DioError catch (e) {
    if (enableLog) {
      print(
          'An error occured on [deposit]: ${e.response!.data['responsemsg'] as String}');
    }
    throw QosicException(
      'An error occured on [deposit]',
      responseMsg: e.response!.data['responsemsg'] as String,
      data: e,
    );
  }

  return transactionReference;
}