aggregateNeomageStatsForRange method

Future<NeomageStats> aggregateNeomageStatsForRange(
  1. StatsDateRange range
)

Aggregates stats for a specific date range.

Implementation

Future<NeomageStats> aggregateNeomageStatsForRange(
  StatsDateRange range,
) async {
  if (range == StatsDateRange.all) {
    return aggregateNeomageStats();
  }

  final allSessionFiles = await getAllSessionFiles();
  if (allSessionFiles.isEmpty) {
    return _getEmptyStats();
  }

  final today = DateTime.now();
  final daysBack = range == StatsDateRange.sevenDays ? 7 : 30;
  final fromDate = today.subtract(Duration(days: daysBack - 1));
  final fromDateStr = toDateString(fromDate);

  final stats = await processSessionFiles(
    allSessionFiles,
    options: ProcessOptions(fromDate: fromDateStr),
  );

  return _processedStatsToNeomageStats(stats);
}