getKuralOfTheDay method

Future getKuralOfTheDay({
  1. required String? date,
})

Implementation

Future getKuralOfTheDay({required String? date}) async{

  isKuralOfDayLoaded = false;
  kuralOfDay = null;
  errorMessageForKuralOfDay = '';

  String validDateMessage = isDateValid(date: date);
  logger.i(validDateMessage);
  if(validDateMessage.isEmpty) {
    try {
      ApiResponse response = await ApiServices.get(
          requestHeaders: {},
          requestParams: {
            'date': date
          },
          endpoint: UrlServices.GET_KURAL_OF_THE_DAY
      );

      logger.w(response.toJson());

      if (response.status != null && response.status!) {
        Map<String, dynamic> responseJson = response.response;
        if(responseJson.isNotEmpty) {
          kuralOfDay = Kural.fromJson(response.response);
          isKuralOfDayLoaded = true;
        } else{
          errorMessageForKuralOfDay = response.message ?? 'No response from server.';
        }
      } else {
        errorMessageForKuralOfDay = response.message ??
            'Server error, failed to load kural of the day';
      }
    } catch (e, stackTrace) {
      logger.e('Error while fetching kural of the day: $e, $stackTrace');
    }
  }else{
    errorMessageForKuralOfDay = validDateMessage;
  }

  logger.e('Error message while fetching kural of the day: $date');
  logger.e(errorMessageForKuralOfDay);

  state = state.kuralOfDayCopyWith(
      kuralOfTheDay: kuralOfDay,
      errorMessageForKuralOfDay: errorMessageForKuralOfDay,
      isKuralOfDayLoaded: isKuralOfDayLoaded
  );
}