api and storage restructure

This commit is contained in:
2026-05-05 22:00:07 +02:00
parent 4f796dac2e
commit 9b5a70b285
53 changed files with 318 additions and 460 deletions
@@ -1,26 +1,14 @@
import 'dart:convert';
import '../../../requestCache.dart';
import 'getHolidays.dart';
import 'getHolidaysResponse.dart';
class GetHolidaysCache extends RequestCache<GetHolidaysResponse> {
GetHolidaysCache({
void Function(GetHolidaysResponse)? onUpdate,
void Function(Exception)? onError,
bool? renew,
}) : super(
RequestCache.cacheDay,
onUpdate,
onError: onError ?? RequestCache.ignore,
renew: renew,
class GetHolidaysCache extends SimpleCache<GetHolidaysResponse> {
GetHolidaysCache({super.onUpdate, super.onError, super.renew})
: super(
cacheTime: RequestCache.cacheDay,
loader: () => GetHolidays().run(),
fromJson: GetHolidaysResponse.fromJson,
) {
start('wu-holidays');
}
@override
Future<GetHolidaysResponse> onLoad() => GetHolidays().run();
@override
GetHolidaysResponse onLocalData(String json) => GetHolidaysResponse.fromJson(jsonDecode(json));
}
@@ -1,27 +1,14 @@
import 'dart:convert';
import '../../../requestCache.dart';
import 'getRooms.dart';
import 'getRoomsResponse.dart';
class GetRoomsCache extends RequestCache<GetRoomsResponse> {
GetRoomsCache({
void Function(GetRoomsResponse)? onUpdate,
void Function(Exception)? onError,
bool? renew,
}) : super(
RequestCache.cacheHour,
onUpdate,
onError: onError ?? RequestCache.ignore,
renew: renew,
class GetRoomsCache extends SimpleCache<GetRoomsResponse> {
GetRoomsCache({super.onUpdate, super.onError, super.renew})
: super(
cacheTime: RequestCache.cacheHour,
loader: () => GetRooms().run(),
fromJson: GetRoomsResponse.fromJson,
) {
start('wu-rooms');
}
@override
Future<GetRoomsResponse> onLoad() => GetRooms().run();
@override
GetRoomsResponse onLocalData(String json) => GetRoomsResponse.fromJson(jsonDecode(json));
}
@@ -1,27 +1,14 @@
import 'dart:convert';
import '../../../requestCache.dart';
import 'getSubjects.dart';
import 'getSubjectsResponse.dart';
class GetSubjectsCache extends RequestCache<GetSubjectsResponse> {
GetSubjectsCache({
void Function(GetSubjectsResponse)? onUpdate,
void Function(Exception)? onError,
bool? renew,
}) : super(
RequestCache.cacheHour,
onUpdate,
onError: onError ?? RequestCache.ignore,
renew: renew,
class GetSubjectsCache extends SimpleCache<GetSubjectsResponse> {
GetSubjectsCache({super.onUpdate, super.onError, super.renew})
: super(
cacheTime: RequestCache.cacheHour,
loader: () => GetSubjects().run(),
fromJson: GetSubjectsResponse.fromJson,
) {
start('wu-subjects');
}
@override
Future<GetSubjectsResponse> onLoad() => GetSubjects().run();
@override
onLocalData(String json) => GetSubjectsResponse.fromJson(jsonDecode(json));
}
@@ -1,20 +1,14 @@
import 'dart:convert';
import '../../../requestCache.dart';
import 'getTimegridUnits.dart';
import 'getTimegridUnitsResponse.dart';
class GetTimegridUnitsCache extends RequestCache<GetTimegridUnitsResponse> {
GetTimegridUnitsCache({
void Function(GetTimegridUnitsResponse)? onUpdate,
bool? renew,
}) : super(RequestCache.cacheDay, onUpdate, renew: renew) {
class GetTimegridUnitsCache extends SimpleCache<GetTimegridUnitsResponse> {
GetTimegridUnitsCache({super.onUpdate, super.renew})
: super(
cacheTime: RequestCache.cacheDay,
loader: () => GetTimegridUnits().run(),
fromJson: GetTimegridUnitsResponse.fromJson,
) {
start('wu-timegrid');
}
@override
Future<GetTimegridUnitsResponse> onLoad() => GetTimegridUnits().run();
@override
GetTimegridUnitsResponse onLocalData(String json) => GetTimegridUnitsResponse.fromJson(jsonDecode(json));
}
@@ -1,49 +1,43 @@
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;
class GetTimetableCache extends SimpleCache<GetTimetableResponse> {
GetTimetableCache({
required void Function(GetTimetableResponse) onUpdate,
void Function(Exception)? onError,
required this.startdate,
required this.enddate,
bool? renew,
super.onError,
required int startdate,
required int enddate,
super.renew,
}) : super(
RequestCache.cacheMinute,
onUpdate,
onError: onError ?? RequestCache.ignore,
renew: renew,
cacheTime: RequestCache.cacheMinute,
loader: () => _load(startdate, enddate),
fromJson: GetTimetableResponse.fromJson,
onUpdate: onUpdate,
) {
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,
)
)
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();
}
}