addMapping method
- required int slotId,
- required CourseToSlot mapping,
Adds a mapping to the slot with the given slotId
.
Implementation
Future<void> addMapping({required int slotId, required CourseToSlot mapping}) async {
if (!state.hasData) {
log('Cannot add mapping: No data');
return;
}
log('Adding mapping $mapping to slot $slotId');
try {
data(
state.requireData.map((s) {
if (s.id == slotId) {
return s.copyWith(mappings: [...s.mappings, mapping]);
}
return s;
}).toList(),
);
await _datasource.addSlotMapping(
token: _auth.state.requireData.pick(Webservice.lb_planner_api),
mapping: mapping,
);
log('Added mapping $mapping to slot $slotId');
} catch (e, s) {
log('Failed to add mapping $mapping to slot $slotId', e, s);
}
}