callQueuePush method

Future<void> callQueuePush()

Implementation

Future<void> callQueuePush() async {
  BuildContext context = Get.context!;
  Helper.progressDialog(context, "Please wait..");
  try {
    String requestTime = "";
    String responseTime = "";
    final Map<String, dynamic> data = {
      "cartId": cart_id.value,
    };

    await ApiClient(
      baseUrl: ApiConstant.posBaseUrl,
      onFetchRequestTime: (time) {
        requestTime = time;
      },
      onFetchResponseTime: (time) {
        responseTime = time;
      },
      screenName: "productListScreen",
    )
        .queuePush(
      body: jsonEncode(data),
      xUserId: SecureStorageService.readSecureData(
            SecureStorageService.xUserId,
          ) ??
          "",
    )
        .then((response) {
      Helper.logEvent(
        "RESPONSE_EVENT",
        success: true,
        endPoint: Api.producttypeList,
        responseDate: responseTime,
        screenName: "droListingScreen",
        requestDate: requestTime,
      );
      QueuePushModel model = response;
      Helper.close();
      isLoadingMore.value = false;
      if (model != null) {
        if (model.status == "POS200") {
          cleanCartData(context);
          callQueueListApi(cashRegisterId.value);
          Get.close(2);
        } else {
          Helper.messageDialog(
            Get.context!,
            model.errors![0].code ?? localization.translate("tryAgain"),
            model.errors![0].localeMessage ??
                localization.translate("somethingWentWrong"),
          );
        }
      }
    }).catchError((error) {
      ConditionalLogs().customLog("$error");
      Helper.close();
      MainController mainController = Get.put(MainController());
      mainController.showErrorPopup();
    });
  } catch (e) {
    Helper.close();
  }
}