execute method
Executes business logic with input inDTO
.
Implementation
@override
Future<List<MealCollection>> execute(MealQuery inDTO) async {
var source = OpenMensaMealDataSource(inDTO.mensa, inDTO.date);
return source.retrieveAll().then((meals) {
var collections = <MealCategory, MealCollection>{};
for (var meal in meals) {
var category = meal.category;
if (collections[category] == null) {
collections[category] = OpenMensaMealCollection(
category: category, meals: <OpenMensaMeal>[]);
}
collections[category]?.meals.add(meal);
}
return collections.values.toList();
});
}