exec method
- {required ExerciseIntensityModel nextExerciseIntensity}
運動データとその評価閾値を取得する。
指定された運動強度に基づいて、ローカルデータベースから関連する運動データのリストを取得し、
そのリストを元に1セット分の運動データのリストを作成し、それぞれの運動データに対して
評価閾値を生成し、運動データとその閾値データを ExerciseAndThresholdModel にまとめます。
Parameters:
nextExerciseIntensity: 次の運動強度
Return: Future が返されます。このFutureは、運動データと評価閾値のリストが完了すると完了します。
使用するリポジトリ:
- ExerciseRepository : 運動データの取得を管理するリポジトリ
- ExerciseEvaluationRepository : 運動評価のデータ操作を管理するリポジトリ 使用するサービス:
- ExerciseSelectionService : 運動データの選択を行うサービス
- CreateExerciseEvaluationThresholdService : 運動評価閾値の生成を行うサービス
Implementation
Future<List<ExerciseAndThresholdModel>> exec({
required ExerciseIntensityModel nextExerciseIntensity,
}) async {
try {
final exerciseModels =
await _exerciseRepository.getListFromExerciseIntensity(
exerciseIntensity: nextExerciseIntensity,
);
final exerciseSet = _exerciseSelectionService.createExerciseSet(
exerciseModelList: exerciseModels,
);
final exerciseAndThresholdModels = exerciseSet.map(
(exercise) async {
final exerciseEvaluationModels =
await _exerciseEvaluationRepository.getListFromExerciseId(
exerciseId: exercise.exerciseId,
);
final evaluationThresholds =
_createExerciseEvaluationThresholdService.exec(
exerciseEvaluationModelList: exerciseEvaluationModels,
);
return ExerciseAndThresholdModel(
exercise: exercise,
threshold: evaluationThresholds,
);
},
).toList();
return Future.wait(exerciseAndThresholdModels);
} on RepositoryException catch (error, stackTrace) {
throw _errorHandler.handleRepositoryError(error, stackTrace);
} on ServiceException catch (_) {
throw UsecaseException(
UsecaseErrorType.missingExerciseDataError,
UsecaseErrorType.missingExerciseDataError.message,
);
} catch (error, stackTrace) {
throw _errorHandler.handleUnknownError(error, stackTrace);
}
}