self_health_repository.dart
1.14 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/health_v2_models.dart';
import 'package:intl/intl.dart';
abstract class SelfHealthRepository {
Future<V2HealthData> getHealthData(DateTime date);
Future<V2StressScore> getStressScore(DateTime date);
}
class SelfHealthRepositoryImpl implements SelfHealthRepository {
const SelfHealthRepositoryImpl(this._healthApi);
final HealthApi _healthApi;
@override
Future<V2HealthData> getHealthData(DateTime date) async {
final intDate = int.parse(DateFormat('yyyyMMdd').format(date));
return switch (await _healthApi.getV2HealthData(null, intDate)) {
AppSuccess(:final data) => data,
AppFailure(:final error) => throw error,
};
}
@override
Future<V2StressScore> getStressScore(DateTime date) async {
final intDate = int.parse(DateFormat('yyyyMMdd').format(date));
return switch (await _healthApi.getV2StressScore(null, intDate)) {
AppSuccess(:final data) => data,
AppFailure(:final error) => throw error,
};
}
}