Files
Client/lib/api/webuntis/queries/getTimetable/getTimetableCache.dart
T
2026-05-04 13:54:39 +02:00

44 lines
1.5 KiB
Dart

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