purchaseVoucher method

Future purchaseVoucher({
  1. required String voucherId,
  2. required bool purchaseByCash,
  3. String transactionId = "",
  4. String accountId = "",
  5. String transactionDatetime = "",
  6. num amount = 0.0,
})

Implementation

Future<dynamic> purchaseVoucher({required String voucherId, required bool purchaseByCash, String transactionId = "", String accountId = "", String transactionDatetime = "", num amount = 0.0}) async {
  try{
    var module = await SharedPrefs.getModule();
    var accessToken = await SharedPrefs.getAccessToken();
    module = module.isEmpty ? globalModule : module;

    PurchaseVoucherBodyModel body = PurchaseVoucherBodyModel(voucherid: voucherId, purchaseByCash: purchaseByCash, transectionid: transactionId, accountid: accountId, transectionDatetime: transactionDatetime, amount: amount);

    Response response = await _dio.post(getPurchaseVoucherURL, data: body.toJson(), options: Options(headers: {'module': module, 'Authorization': "Bearer $accessToken"},));
    return response;
  }catch(e){
    DioExceptions.fromDioError(dioError: e as DioException);
    if(e.response?.statusCode! == 401){
      return DioExceptions.unauthorized(() => purchaseVoucher(voucherId: voucherId, purchaseByCash: purchaseByCash, transactionId: transactionId, accountId: accountId, transactionDatetime: transactionDatetime, amount: amount));
    }else{
      return e.response;
    }
  }
}