getRatesHistory method

Future<void> getRatesHistory({
  1. bool showLoadingDialog = true,
})

Implementation

Future<void> getRatesHistory({bool showLoadingDialog = true}) async {
  isLoadingRates.value = true;
  var query =
      '&status=${BookingStatus.pendingRate.value},${BookingStatus.rateConfirmed.value}';
  var response = await Requests.getDio(showLoadingDialog: showLoadingDialog).get(
      "booking/subscriber?pageSize=${ratesPageSize.value}&page=${currentRatesPage.value}$query");
  if (response.statusCode == 200) {
    totalRatesRows.value = response.data['total'];
    totalRatesPages.value = (totalRatesRows.value / ratesPageSize.value).ceil();
    if (currentRatesPage.value == 1) {
      ratesHistory.value = BookingHistoryModel.fromJson(response.data);
    } else {
      ratesHistory.value.bookingsList?.addAll(
          (BookingHistoryModel.fromJson(response.data)).bookingsList ?? []);
    }
    final booking = ratesHistory.value.bookingsList
        ?.firstWhereOrNull((b) => b.id == expandedRateId.value);
    if (booking != null) {
      selectedRate.value = booking;
      selectedRate.refresh();
    }
    createRatesTimers();
    ratesHistory.refresh();
    isLoadingRates.value = false;
  } else {
    isLoadingRates.value = false;
    if (kDebugMode) {
      CustomFlashWidget.showFlashMessage(
        type: FlashType.error,
        title: "Failure",
        message:
        "Error while fetching the booking requests. Please try again later!",
      );
    }
  }
}