callCreateCouponApi method

Future<void> callCreateCouponApi(
  1. double amount, {
  2. bool isDeepLinkFailed = false,
})

Implementation

Future<void> callCreateCouponApi(double amount,
    {bool isDeepLinkFailed = false}) async {
  BuildContext context = Get.context!;
  var partnerId = SecureStorageService.readSecureData(
        SecureStorageService.partnerIdLogin,
      ) ??
      "";
  var bodyRequest = {
    "entityId": partnerId, //dealer Id
    "amount": amount,
    "remarks": "",
    "bankRefId": "", // bank ref id (O)
    "bankName": "", // bank name (O)
    "orderId": "" // order id (O)
  };

  Helper.progressDialog(Get.context!, "");
  String requestTime = "";
  String responseTime = "";
  couponTransactionId = "";
  try {
    await ApiClient(
      baseUrl: ApiConstant.posBFF,
      onFetchRequestTime: (time) {
        requestTime = time;
      },
      onFetchResponseTime: (time) {
        responseTime = time;
      },
      screenName: "stockOrder",
    )
        .getPosCreateTransaction(
      body: bodyRequest,
      xUserId: SecureStorageService.readSecureData(
        SecureStorageService.xUserId,
      ),
      xUserName: SecureStorageService.readSecureData(
        SecureStorageService.xUserName,
      ),
    )
        .then((response) async {
      CreateCouponTransactionModel model =
          response; // CreateCouponTransactionModel.fromJson(couponResponse);

      if (model.status == "POS200") {
        Helper.logEvent(
          "RESPONSE_EVENT",
          success: true,
          endPoint: Api.posCreateTransaction,
          responseDate: responseTime,
          screenName: "stockOrder",
          requestDate: requestTime,
        );
        Helper.close();
        if (model.data != null) {
          couponTransactionId = model.data?.couponTransactionId ?? "";
          if (isDeepLinkFailed) {
            paymentmodestatus = 2;
            callPaymentTransactionCreateApi(couponTransactionId, "QrCode",
                selectedAmount.value.toString());
          } else {
            if (await checkAppAvailability()) {
              paymentmodestatus = 1;
              callPaymentTransactionCreateApi(couponTransactionId, "deep",
                  selectedAmount.value.toString());
            } else {
              paymentmodestatus = 2;
              callPaymentTransactionCreateApi(couponTransactionId, "QrCode",
                  selectedAmount.value.toString());
            }
          }
        }
      } else {
        Helper.close();
        Helper.messageDialog(
          Get.context!,
          model.status ?? localization.translate('tryAgain'),
          model.message ?? localization.translate('somethingWrong'),
        );
      }
    }).catchError((error) {
      Helper.close();
      if (error is DioException) {
        UDID.setTraceId(
          error.response?.headers.map[Constants.traceIdKey]?[0] ?? "",
        );
        Helper.logEvent(
          "ERROR_EVENT",
          failure: true,
          requestDate: requestTime,
          endPoint: Api.posCreateTransaction,
          responseDate: DateTime.now().toString(),
          screenName: "stockOrder",
          error: error,
        );
      }
      Helper.messageDialog(
        context,
        localization.translate('tryAgain'),
        error.toString(),
      );
    });
  } catch (error, st) {
    Helper.close();
    if (error is DioException) {
      UDID.setTraceId(
        error.response?.headers.map[Constants.traceIdKey]?[0] ?? "",
      );
      Helper.logEvent(
        "ERROR_EVENT",
        failure: true,
        requestDate: requestTime,
        endPoint: Api.posCreateTransaction,
        responseDate: DateTime.now().toString(),
        screenName: "stockOrder",
        error: error,
      );
    }
    print(st);
  }
}