import 'dart:convert'; import 'package:marianum_mobile/api/requestCache.dart'; import '../authenticate/authenticate.dart'; import 'getTimetable.dart'; import 'getTimetableParams.dart'; import 'getTimetableResponse.dart'; class GetTimetableCache extends RequestCache { int startdate; int enddate; GetTimetableCache({required onUpdate, required this.startdate, required this.enddate}) : super(RequestCache.cacheMinute, onUpdate) { start("MarianumMobile", "wu-timetable-$startdate-$enddate"); } @override GetTimetableResponse onLocalData(String json) { return GetTimetableResponse.fromJson(jsonDecode(json)); } @override Future onLoad() async { return GetTimetable( GetTimetableParams( options: GetTimetableParamsOptions( element: GetTimetableParamsOptionsElement( id: (await Authenticate.getSession()).personId, type: 5, keyType: GetTimetableParamsOptionsElementKeyType.id, ), startDate: startdate, endDate: enddate, teacherFields: GetTimetableParamsOptionsFields.all, subjectFields: GetTimetableParamsOptionsFields.all, roomFields: GetTimetableParamsOptionsFields.all, klasseFields: GetTimetableParamsOptionsFields.all, ) ) ).run(); } }