Client/lib/data/timetable/timetable.dart

60 lines
1.9 KiB
Dart

import 'dart:collection';
import 'dart:convert';
import 'dart:developer';
import 'package:intl/intl.dart';
import 'package:marianum_mobile/api/webuntis/queries/authenticate/authenticate.dart';
import 'package:marianum_mobile/api/webuntis/queries/authenticate/authenticateResponse.dart';
import 'package:marianum_mobile/api/webuntis/queries/getRooms/getRoomsCache.dart';
import 'package:marianum_mobile/api/webuntis/queries/getRooms/getRoomsResponse.dart';
import 'package:marianum_mobile/api/webuntis/queries/getSubjects/getSubjectsCache.dart';
import 'package:marianum_mobile/api/webuntis/queries/getSubjects/getSubjectsResponse.dart';
import 'package:marianum_mobile/data/dataHolder.dart';
import '../../api/webuntis/queries/getTimetable/getTimetable.dart';
import '../../api/webuntis/queries/getTimetable/getTimetableCache.dart';
import '../../api/webuntis/queries/getTimetable/getTimetableParams.dart';
import '../../api/webuntis/queries/getTimetable/getTimetableResponse.dart';
class Timetable extends DataHolder {
int day = int.parse(DateFormat("yyyyMMdd").format(DateTime.now()));
Timetable() : super();
GetTimetableResponse? _getTimetableResponse;
GetTimetableResponse? get getTimetableResponse => _getTimetableResponse;
GetRoomsResponse? _getRoomsResponse;
GetRoomsResponse? get getRoomsResponse => _getRoomsResponse;
GetSubjectsResponse? _getSubjectsResponse;
GetSubjectsResponse? get getSubjectsResponse => _getSubjectsResponse;
@override
Future<void> run() async {
GetTimetableCache(
day: day,
onUpdate: (data) =>
{
_getTimetableResponse = data,
notifyListeners(),
}
);
GetRoomsCache(
onUpdate: (data) =>
{
_getRoomsResponse = data,
notifyListeners(),
}
);
GetSubjectsCache(
onUpdate: (data) =>
{
_getSubjectsResponse = data,
notifyListeners(),
}
);
}
}