Files
Client/lib/api/webuntis/queries/getTimetable/getTimetableCache.dart
T
2026-05-05 22:00:07 +02:00

44 lines
1.4 KiB
Dart

import '../../../requestCache.dart';
import '../authenticate/authenticate.dart';
import 'getTimetable.dart';
import 'getTimetableParams.dart';
import 'getTimetableResponse.dart';
class GetTimetableCache extends SimpleCache<GetTimetableResponse> {
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<GetTimetableResponse> _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();
}
}