getEstimatedOnlinePrice method

Future<EstimateRateQuote?> getEstimatedOnlinePrice({
  1. OfferModel? offer,
  2. bool setQoute = true,
})

Implementation

Future<EstimateRateQuote?> getEstimatedOnlinePrice({OfferModel? offer, bool setQoute = true})  async {
  try{
    final departureDate = DateFormat('EEE, dd/MM/yy').parse(searchDepartureDate.value);
  final returnDate = DateFormat('EEE, dd/MM/yy').parse(searchReturnDate.value);
  var data = {
    "departureDate": DateFormat('yyyy-MM-dd').format(departureDate),
    "returnDate": DateFormat('yyyy-MM-dd').format(returnDate),
    "fromAirport": searchFromAirport.value?.code ?? '',
    "toAirport":  searchToAirport.value?.code ?? '',
    "flightClass": (offer?.flightClass) ?? (selectedExclusiveOffer.value?.flightClass) ?? '',
    "adultPassengersCount": searchAdults.value,
    "childPassengersCount": searchChildren.value,
    "infantWithSeatPassengersCount": searchInfantsInSeats.value,
    "infantNoSeatPassengersCount": searchInfantsInLap.value,
    "departureTime" : (offer?.departureTrip?.flights?.firstOrNull?.departureTime) ?? (selectedExclusiveOffer.value?.departureTrip?.flights?.firstOrNull?.departureTime) ?? "",
    "returnTime" : (offer?.returnTrip?.flights?.firstOrNull?.departureTime) ?? (selectedExclusiveOffer.value?.returnTrip?.flights?.firstOrNull?.departureTime) ?? '',
    "departureTripId": (offer?.departureTrip?.id) ??  (selectedExclusiveOffer.value?.departureTrip?.id) ?? '',
    "returnTripId": (offer?.returnTrip?.id) ?? (selectedExclusiveOffer.value?.returnTrip?.id) ?? '',
  };
  var response =
      await Requests.getDio().post("booking/v4/online-price", data: data);
    if (response.statusCode == 200) {
      if(setQoute){
       return estimateQuote.value = EstimateRateQuote.fromJson(response.data);
      }
      return EstimateRateQuote.fromJson(response.data);
    }
    else{
      debugPrint("### estimate Quote Failed");
      return null;
    }
  }
  catch(e){
    debugPrint("Error: Getting estimeted price");
    return null;
  }


}