savedToRateRequest method

Future<void> savedToRateRequest()

Implementation

Future<void> savedToRateRequest()  async {
  if((rateRequestRemaining <= 0) && (searchCreditRemaining < searchCreditNeededForRateRequest)){
    closeDialog();
    await InsufficientSearchCreditsDialog.show(fromRateRequest: true);
    return;
  }

   if(checkBookingisWithIn12Hours(paymentDetails.value.departureDate ?? '', paymentDetails.value.departureTime ?? '').isLowerThan(0)){
    await callDependingOnScreen(
      doMobile: () async {
        await openBottomSheet(
          const BookingNotPossible(
          isRateInit: true,
          isDialog: false,
         )
        );
      },
      doWeb: () async {
        await openDialog(
          barrierDismissible: false,
          const BookingNotPossible(
          isRateInit: true,
          isDialog: true,
         )
        );
      },
    );
    return;
  }

  var data = {
    "donationAmount": savedDonation.value
  };

  var response =
      await Requests.getDio(highTimeout: true).post("booking/v4/${paymentDetails.value.bookingId}/saved-to-request-rate?isLive=${Constants.searchLive}", data: data);
  if (response.statusCode == 200) {
    getBooking(paymentDetails.value.bookingId);
    await Get.find<AuthenticationController>().getUserProfile();
    await DeepSearchSuccessDialog.show(
      barrierDismissible: false,
      searchCreditAdded: searchCreditTotal,
      searchCreditUsed: searchCreditConsumed,
      rateRequestAdded: rateRequestTotal,
      rateRequestUsed: rateRequestConsumed,
      isUsingSearchCredit: (rateRequestTotal - rateRequestConsumed) <= 0,
      isSaved: true,
      goBackToResults: () {
        closeDialog();
        goBack();
      },
    );
  }
  else{
    CustomFlashWidget.showFlashMessage(
      title: "Rate Request Failed",
      message: response.data['message'] ?? "Something unexpected happened",
      type: FlashType.error);
  }
  }