Basic Webuntis error handling
This commit is contained in:
@ -1,3 +1,5 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:localstore/localstore.dart';
|
||||
|
||||
@ -13,6 +15,12 @@ abstract class DataHolder extends ChangeNotifier {
|
||||
List<ApiResponse?> properties();
|
||||
|
||||
bool primaryLoading() {
|
||||
return properties().where((element) => element != null).isEmpty;
|
||||
log(properties().toString());
|
||||
|
||||
for(ApiResponse? element in properties()) {
|
||||
if(element == null) return true;
|
||||
}
|
||||
return false;
|
||||
//return properties().where((element) => element != null).isEmpty;
|
||||
}
|
||||
}
|
@ -1,4 +1,6 @@
|
||||
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:marianum_mobile/api/apiResponse.dart';
|
||||
import 'package:marianum_mobile/api/webuntis/queries/getHolidays/getHolidaysCache.dart';
|
||||
@ -11,6 +13,7 @@ import 'package:marianum_mobile/data/dataHolder.dart';
|
||||
|
||||
import '../../api/webuntis/queries/getTimetable/getTimetableCache.dart';
|
||||
import '../../api/webuntis/queries/getTimetable/getTimetableResponse.dart';
|
||||
import '../../api/webuntis/webuntisError.dart';
|
||||
|
||||
extension DateTimeExtension on DateTime {
|
||||
DateTime next(int day) {
|
||||
@ -40,11 +43,9 @@ class TimetableProps extends DataHolder {
|
||||
GetHolidaysResponse? _getHolidaysResponse;
|
||||
GetHolidaysResponse get getHolidaysResponse => _getHolidaysResponse!;
|
||||
|
||||
|
||||
TimetableProps() {
|
||||
//nearest();
|
||||
|
||||
}
|
||||
WebuntisError? error;
|
||||
WebuntisError? get getError => error;
|
||||
bool get hasError => error != null;
|
||||
|
||||
@override
|
||||
List<ApiResponse?> properties() {
|
||||
@ -54,12 +55,17 @@ class TimetableProps extends DataHolder {
|
||||
@override
|
||||
void run() {
|
||||
GetTimetableCache(
|
||||
startdate: int.parse(DateFormat("yyyyMMdd").format(startDate)),
|
||||
enddate: int.parse(DateFormat("yyyyMMdd").format(endDate)),
|
||||
onUpdate: (GetTimetableResponse data) => {
|
||||
_getTimetableResponse = data,
|
||||
notifyListeners(),
|
||||
}
|
||||
startdate: int.parse(DateFormat("yyyyMMdd").format(startDate)),
|
||||
enddate: int.parse(DateFormat("yyyyMMdd").format(endDate)),
|
||||
onUpdate: (GetTimetableResponse data) => {
|
||||
_getTimetableResponse = data,
|
||||
notifyListeners(),
|
||||
},
|
||||
onError: (Exception e) => {
|
||||
error = e as WebuntisError?,
|
||||
log("hello there"),
|
||||
notifyListeners(),
|
||||
}
|
||||
);
|
||||
|
||||
GetRoomsCache(
|
||||
@ -106,8 +112,17 @@ class TimetableProps extends DataHolder {
|
||||
}
|
||||
|
||||
void updateWeek() {
|
||||
properties().forEach((element) => element = null);
|
||||
error = null;
|
||||
notifyListeners();
|
||||
startDate = getDate(_queryWeek.subtract(Duration(days: _queryWeek.weekday - 1)));
|
||||
endDate = getDate(_queryWeek.add(Duration(days: DateTime.daysPerWeek - _queryWeek.weekday)));
|
||||
run();
|
||||
try {
|
||||
run();
|
||||
} on WebuntisError catch(e) {
|
||||
error = e;
|
||||
notifyListeners();
|
||||
log(e.toString());
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user