Implement Webuntis HTTP Api and Display

This commit is contained in:
2023-02-15 20:33:05 +01:00
parent 7432972b3c
commit 2b6dc8e3e6
42 changed files with 746 additions and 287 deletions

View File

@ -0,0 +1,12 @@
import 'dart:async';
import 'package:flutter/widgets.dart';
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
class PersistantTimetable {
final int id;
final String json;
PersistantTimetable(this.id, this.json);
}

View File

@ -0,0 +1,60 @@
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(),
}
);
}
}