Skip to content
This repository has been archived by the owner on Jan 19, 2024. It is now read-only.

Commit

Permalink
FIX: Fetching of assignments without permissions
Browse files Browse the repository at this point in the history
FIX: Fetching of assignments without permissions
  • Loading branch information
HarryDeKat authored Dec 4, 2023
2 parents 5e0f9e6 + b8f383f commit 45e088e
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 8 deletions.
13 changes: 8 additions & 5 deletions lib/apis/magister.dart
Original file line number Diff line number Diff line change
Expand Up @@ -63,17 +63,20 @@ class Magister implements Api {
dynamic futures = await Future.wait([
api.dio.get(
"/api/personen/${person.id}/afspraken?status=1&tot=${DateTime.now().add(const Duration(days: 60)).toIso8601String()}&van=${DateTime.now().toIso8601String()}"),
api.dio.get(
"/api/personen/${person.id}/opdrachten?skip=0&top=250&einddatum=${DateTime.now().add(const Duration(days: 60)).toIso8601String()}&startdatum=${DateTime.now().toIso8601String()}"),
if (person.config.supportsAssignments)
api.dio.get(
"/api/personen/${person.id}/opdrachten?skip=0&top=250&einddatum=${DateTime.now().add(const Duration(days: 60)).toIso8601String()}&startdatum=${DateTime.now().toIso8601String()}"),
]);

person.calendarEvents = (futures[0].data["Items"] as List)
.map((event) => magisterCalendarEvent(event)!)
.toList();

person.calendarEvents.addAll((futures[1].data["Items"] as List)
.map((assignment) => magisterAssignmentToCalendarEvent(assignment)!)
.toList());
if (person.config.supportsAssignments) {
person.calendarEvents.addAll((futures[1].data["Items"] as List)
.map((assignment) => magisterAssignmentToCalendarEvent(assignment)!)
.toList());
}

for (CalendarEvent event in person.calendarEvents) {
if (event.description != null) {
Expand Down
6 changes: 6 additions & 0 deletions lib/apis/magister/api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,12 @@ class MagisterApi extends Magister {
res["Persoon"]["Geboortedatum"] ?? DateTime.now().toIso8601String());

Future<void> initPerson(Person person) async {
person.config.supportsAssignments = perms
.firstWhereOrNull((p) => p.name == "EloOpdracht")
?.accessType
.contains("Read") ??
false;

await refreshProfilePicture(person);
await refreshCalendarEvents(person);
await setSchoolYears(person);
Expand Down
2 changes: 2 additions & 0 deletions lib/hive/adapters.dart
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,8 @@ class PersonConfig {
bool useForGradeCheck = true;
@HiveField(2, defaultValue: false)
bool useForTestCheck = false;
@HiveField(3, defaultValue: true)
bool supportsAssignments = true;
}

enum FilterTypes { quarterCode, subject, teacher, inputString, pta, dateRange }
Expand Down
9 changes: 6 additions & 3 deletions lib/hive/adapters.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 45e088e

Please sign in to comment.