getSleepLog method

Future<List<SleepData>> getSleepLog({
  1. required DateTime? startDate,
  2. required DateTime? endDate,
  3. int pageNumber = 1,
  4. int itemsPerPage = 7,
})

get user's sleep data

Implementation

Future<List<SleepData>> getSleepLog(
    {required DateTime? startDate,
    required DateTime? endDate,
    int pageNumber = 1,
    int itemsPerPage = 7}) async {
  List<SleepData> sleepListData = [];

  List<UserLogReportData> usersLogDataList = await getSymptomsLogReport(
      startDate: startDate,
      endDate: endDate,
      isRequiredPagination: true,
      itemsPerPage: itemsPerPage,
      pageNumber: pageNumber);
  for (int i = 0; i < usersLogDataList.length; i++) {
    SleepData sleepData = SleepData();
    UserLogReportData logReportData = usersLogDataList[i];

    List<String> time = logReportData.sleepTime!.split("T");
    List<String> sleepBedTime = time[0].split(":");
    List<String> sleepWakeUpTime = time[1].split(":");

    int sleepBedTimeHrs = int.parse(sleepBedTime[0]);
    int sleepBedTimeMin = int.parse(sleepBedTime[1]);
    int sleepWakeUpTimeHrs = int.parse(sleepWakeUpTime[0]);
    int sleepWakeUpTimeMin = int.parse(sleepWakeUpTime[1]);

    if (sleepBedTimeHrs > sleepWakeUpTimeHrs) {
      sleepWakeUpTimeHrs =
          sleepBedTimeHrs + (23 - sleepBedTimeHrs) + sleepWakeUpTimeHrs;
    }

    sleepData.sleepBedTime =
        double.parse("$sleepBedTimeHrs.$sleepBedTimeMin");
    sleepData.wakeUpTime =
        double.parse("$sleepWakeUpTimeHrs.$sleepWakeUpTimeMin");

    /*printLogs("sleepBedTime ${sleepData.sleepBedTime}");
     printLogs("wakeUpTime ${sleepData.wakeUpTime}");*/

    sleepData.dateTime =
        CalenderDateUtils.graphDateFormat(logReportData.logDate!);

    if (sleepData.sleepBedTime! > 0) {
      sleepListData.add(sleepData);
    }
  }

  return sleepListData;
}