execute method

  1. @override
Future<List<MealCollection>> execute(
  1. MealQuery inDTO
)

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();
  });
}