saveRoundTrip method

Future<void> saveRoundTrip()

Implementation

Future<void> saveRoundTrip()  async {
    if(checkBookingisWithIn12Hours(selectedExclusiveOffer.value?.departureTrip?.flights?.firstOrNull?.departureDate ?? '', selectedExclusiveOffer.value?.departureTrip?.flights?.firstOrNull?.departureTime ?? '').isLowerThan(0)){
      await callDependingOnScreen(
        doMobile: () async {
          await openBottomSheet(
            BookingNotPossible(
            goBackToResults: () {
              closeDialog();
              backToDeparture();
            },
            isDialog: false,
           )
          );
        },
        doWeb: () async {
          await openDialog(
            barrierDismissible: false,
            BookingNotPossible(
              goBackToResults: () {
                closeDialog();
                backToDeparture();
            },
            isDialog: true,
           )
          );
        },
      );
      return;
    }
    var data = {
      "offerId": selectedExclusiveOffer.value?.offerId?? '',
      "passengers":selectedPassengers.map((p) => p?.id ?? '').toList(),
      "donationAmount": savedDonation.value
    };

    var response =
        await Requests.getDio().post("booking/v4/save", data: data);
    if (response.statusCode == 200) {
      SaveRoundTripSuccess.show(
        searchCreditAdded: searchCreditTotal,
        searchCreditUsed: searchCreditConsumed,
        goBackToResults: () {
          closeDialog();
          backToDeparture();
        },
      );
    }
    else{
      CustomFlashWidget.showFlashMessage(
        title: "Save RoundTrip Failed",
        message: response.data['message'] ?? "Something unexpected happened",
        type: FlashType.error);
    }
}