import '../../../requestCache.dart'; import '../authenticate/authenticate.dart'; import 'getTimetable.dart'; import 'getTimetableParams.dart'; import 'getTimetableResponse.dart'; class GetTimetableCache extends SimpleCache { GetTimetableCache({ required void Function(GetTimetableResponse) onUpdate, super.onError, required int startdate, required int enddate, super.renew, }) : super( cacheTime: RequestCache.cacheMinute, loader: () => _load(startdate, enddate), fromJson: GetTimetableResponse.fromJson, onUpdate: onUpdate, ) { start('wu-timetable-$startdate-$enddate'); } static Future _load(int startdate, int enddate) async { final session = await Authenticate.getSession(); return GetTimetable( GetTimetableParams( options: GetTimetableParamsOptions( element: GetTimetableParamsOptionsElement( id: session.personId, type: session.personType, keyType: GetTimetableParamsOptionsElementKeyType.id, ), startDate: startdate, endDate: enddate, teacherFields: GetTimetableParamsOptionsFields.all, subjectFields: GetTimetableParamsOptionsFields.all, roomFields: GetTimetableParamsOptionsFields.all, klasseFields: GetTimetableParamsOptionsFields.all, ), ), ).run(); } }