getExercise method
Implementation
Future<Either<ApiError, List<ExerciseInfo>>> getExercise(ApiBase api) async {
final exercises = await api.getExercisesByType(
switch (category) {
ExerciseCategoryEnum.RHYTHM => "Rhythm",
ExerciseCategoryEnum.READING => "Reading",
ExerciseCategoryEnum.LISTENING => "Dictation",
ExerciseCategoryEnum.THEORY => "Theory",
},
null,
);
if (exercises.isLeft) {
return exercises;
}
final futures = exercises.right.map((e) async {
final result = await api.getExercise(e.id);
return result.map((data) => e..exerciseData = data);
});
final results = await Future.wait(futures);
return results.sequence();
}