create method

Future<ApiResponseModel<TransactionModel?>> create({
  1. required String offerId,
  2. required PaymentMethod paymentMethod,
  3. String? companyId,
})

Creates a new transaction for credit purchase.

offerId is the ID of the offer to purchase. paymentMethod is the payment method to use. companyId is an optional company ID. Returns the created TransactionModel instance.

Implementation

Future<ApiResponseModel<TransactionModel?>> create({
  required String offerId,
  required PaymentMethod paymentMethod,
  String? companyId,
}) async {
  final url = "$_baseUrl/transaction/create";

  final payload = {
    'apiKey': _apiKey,
    'offerId': offerId,
    'paymentMethod': paymentMethod.value,
    if (companyId != null) 'companyId': companyId,
  };

  debugPrint("flutter_mon_sms_pro/transaction/create/payload: $payload");

  final r = await _dio.post(url, data: payload);

  debugPrint("flutter_mon_sms_pro/transaction/create/data: ${r.data}");

  final response = ApiResponseModel.fromJson(
    r.data,
    (data) => TransactionModel.fromJson(data as Map<String, dynamic>),
  );

  return response;
}