updateCart method

Future<bool> updateCart(
  1. BuildContext context,
  2. String cartId,
  3. dynamic request, {
  4. bool isShowMsg = false,
})

Implementation

Future<bool> updateCart(
  BuildContext context,
  String cartId,
  dynamic request, {
  bool isShowMsg = false,
}) async {
  Helper.progressDialog(context, "pleaseWait".tr);
  Helper.hideKeyboard();
  // List relatedParty = [];
  // request.relatedParty?.forEach((element) {
  //   relatedParty.add(element.toJson());
  // });
  // List selectedCartoffers = [];
  // request.selectedCartoffers?.forEach((element) {
  //   selectedCartoffers.add(element.toJson());
  // });
  // List adhocTax = [];
  // request.adhocTax?.forEach((element) {
  //   adhocTax.add(element.toJson());
  // });
  // printLogs(dio);
  String requestTime = DateTime.now().toString();
  try {
    String requestBody = json.encode(request);
    print("Request Body: $requestBody");
    bool status = false;
    await dio
        .post(
      '${ApiConstant.posBaseUrl}pos-purchase-order-svc/generic-carts',
      data: json.encode(request),
      options: Options(
        headers: {
          'X-User-Id': SecureStorageService.readSecureData(
            SecureStorageService.xUserId,
          ),
          'X-User-Name': SecureStorageService.readSecureData(
            SecureStorageService.xUserId,
          ),
          'X-Roles': SecureStorageService.readSecureData(
            SecureStorageService.xUserId,
          ),
          'Accept-Language': storage.read("selected_language") ?? "en",
          'x-request-txn-id': UDID.uDID,
          "Authorization": "Bearer ${SecureStorageService.readSecureData(
            SecureStorageService.accessToken,
          )}",
        },
      ),
    )
        .then((response) async {
      UDID.setTraceId(response.headers.map[Constants.traceIdKey]?[0] ?? "");

      Helper.logEvent(
        "RESPONSE_EVENT",
        success: true,
        endPoint: "pos-purchase-order-svc/generic-carts/$cartId",
        responseDate: DateTime.now().toString(),
        screenName: "stockOrder",
        requestDate: requestTime,
        transactionId: cartId,
      );
      if (response.data != null) {
        ConditionalLogs().customLog('updateCart${response.data}');
        CartResponseModel model = CartResponseModel();
        Map<String, dynamic> creditData = response.data;
        //Map<String, dynamic> jsonMap = jsonDecode(cartResponse);
        //model = CartResponseModel.fromJson(jsonMap);
        model = CartResponseModel.fromJson(creditData);
        if (model.status == "POS200") {
          cart_id.value = model.data!.cartId!;
          //discountList.value = model.data!.cartDiscountsList!;
          updateSellThruOrder(model);
          status = true;
          Helper.close();
          if (isShowMsg) {
            Helper.showCustomSnackbar(
                localization.translate("itemUpdateSuccessfully"));
          }
        } else {
          Helper.close();
          Helper.messageDialog(
            Get.context!,
            model.errors![0].code ?? localization.translate("tryAgain"),
            model.errors![0].localeMessage ??
                localization.translate("somethingWentWrong"),
          );
        }
      } else {
        Helper.close();
      }
    }).catchError((error) {
      ConditionalLogs().customLog("$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: "pos-purchase-order-svc/generic-carts/$cartId",
          responseDate: DateTime.now().toString(),
          screenName: "stockOrder",
          error: error,
          transactionId: cartId,
        );
      }
      MainController mainController = Get.put(MainController());
      mainController.showErrorPopup();
    });
    return status;
  } catch (err, stacktrace) {
    ConditionalLogs().customLog("$stacktrace");
    Helper.close();
    if (err is DioException) {
      UDID.setTraceId(
        err.response?.headers.map[Constants.traceIdKey]?[0] ?? "",
      );
      Helper.logEvent(
        "ERROR_EVENT",
        failure: true,
        requestDate: requestTime,
        endPoint: "pos-cart-service-svc/generic-carts/$cartId",
        responseDate: DateTime.now().toString(),
        screenName: "stockOrder",
        error: err,
        transactionId: cartId,
      );
    }
    return false;
  }
}