health_remote_datasource.dart 2.67 KB
import 'package:doublefeel_flutter/core/network/api/health_api.dart';
import 'package:doublefeel_flutter/core/result/app_result.dart';
import 'package:doublefeel_flutter/data/models/health/activity/activity_burn_statistics_data_v2.dart';
import 'package:doublefeel_flutter/data/models/health/health_v2_models.dart';
import 'package:doublefeel_flutter/data/models/health/hrv/hrv_statistics_data.dart';
import 'package:doublefeel_flutter/data/models/health/sleep/sleep_statistics_data.dart';

import 'health_datasource.dart';

/// Remote implementation backed by the health API.
class RemoteHealthDataSource implements HealthDataSource {
  const RemoteHealthDataSource(this._healthApi);

  final HealthApi _healthApi;

  @override
  Future<AppResult<SleepStatisticsData>> getSleepStatistics(
    int dateRangeType,
    int startDate, {
    int? queryUserId,
  }) {
    return _healthApi.getSleepStatistics(
      dateRangeType,
      startDate,
      queryUserId: queryUserId,
    );
  }

  @override
  Future<AppResult<ActivityBurnStatisticsDataV2>> getActivityBurnStatistics(
    int dateRangeType,
    int startDate, {
    int? queryUserId,
  }) {
    return _healthApi.getActivityBurnStatistics(
      dateRangeType,
      startDate,
      queryUserId: queryUserId,
    );
  }

  @override
  Future<AppResult<HrvStatisticsDataV2>> getHrvStatistics(
    int dateRangeType,
    int startDate, {
    int? queryUserId,
  }) {
    return _healthApi.getHrvStatistics(
      dateRangeType,
      startDate,
      queryUserId: queryUserId,
    );
  }

  @override
  Future<AppResult<V2HealthData>> getV2HealthData(
    int? queryUserId,
    int intDate,
  ) {
    return _healthApi.getV2HealthData(queryUserId, intDate);
  }

  @override
  Future<AppResult<V2StressScore>> getV2StressScore(
    int? queryUserId,
    int intDate,
  ) {
    return _healthApi.getV2StressScore(queryUserId, intDate);
  }

  @override
  Future<AppResult<V2LatestHrvData>> getV2LatestHrv(
    int? queryUserId,
    int intDate,
  ) {
    return _healthApi.getV2LatestHrv(queryUserId, intDate);
  }

  @override
  Future<AppResult<V2HrvTrendData>> getV2HrvTrend(
    int? queryUserId,
    int intDate,
  ) {
    return _healthApi.getV2HrvTrend(queryUserId, intDate);
  }

  @override
  Future<AppResult<V2RealtimeStressData>> getV2RealtimeStress(
    int? queryUserId,
    int intDate,
  ) {
    return _healthApi.getV2RealtimeStress(queryUserId, intDate);
  }

  @override
  Future<AppResult<V2ActivityTarget>> getV2ActivityTarget(
    int? queryUserId,
  ) {
    return _healthApi.getV2ActivityTarget(queryUserId);
  }

  @override
  Future<AppResult<V2HealthEverUploaded>> getHealthDataEverUploaded() {
    return _healthApi.getHealthDataEverUploaded();
  }
}