Skip to content

Commit

Permalink
IDProvider Fixes (#5)
Browse files Browse the repository at this point in the history
* Fixed subject declared as student

* Corrected missing semicolon

* Fixed further id problems

* Override equality operator to compare IdProvider properly

---------

Authored-by: randommodder <andreas.powslowsky@gmail.com>
  • Loading branch information
RandomModderJDK authored Sep 15, 2023
1 parent d65b459 commit 982bc3a
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ dart_webuntis:
The basic tool used to interact with the API is the Session object.
```dart
// .init(server, school, username, password, Optional: useragent)
Session mySession = await Session.init("demo.server.com", "demo_school", "demo_user", "demo_pass")
Session mySession = await Session.init("demo.server.com", "demo_school", "demo_user", "demo_pass");
// The ID of the account which credentials you used should now be available over the .userId attribute
var myId = mySession.userId!;
// Alternatively you can also search for a student
Expand Down
15 changes: 11 additions & 4 deletions lib/untis.dart
Original file line number Diff line number Diff line change
Expand Up @@ -146,11 +146,11 @@ class Session {
List.generate(
period["kl"].length, (index) => IdProvider._withType(IdProviderTypes.KLASSE, period["kl"][index]["id"])),
List.generate(
period["te"].length, (index) => IdProvider._withType(IdProviderTypes.KLASSE, period["te"][index]["id"])),
period["te"].length, (index) => IdProvider._withType(IdProviderTypes.TEACHER, period["te"][index]["id"])),
List.generate(
period["su"].length, (index) => IdProvider._withType(IdProviderTypes.KLASSE, period["su"][index]["id"])),
period["su"].length, (index) => IdProvider._withType(IdProviderTypes.SUBJECT, period["su"][index]["id"])),
List.generate(
period["ro"].length, (index) => IdProvider._withType(IdProviderTypes.KLASSE, period["ro"][index]["id"])),
period["ro"].length, (index) => IdProvider._withType(IdProviderTypes.ROOM, period["ro"][index]["id"])),
period["activityType"],
(period["code"] ?? "") == "cancelled",
period["code"],
Expand All @@ -169,7 +169,7 @@ class Session {
List<Subject> _parseSubjects(List<dynamic> rawSubjects) {
return List.generate(rawSubjects.length, (index) {
var subject = rawSubjects[index];
return Subject._(IdProvider._internal(IdProviderTypes.STUDENT, subject["id"]), subject["name"],
return Subject._(IdProvider._internal(IdProviderTypes.SUBJECT, subject["id"]), subject["name"],
subject["longName"], subject["alternateName"]);
});
}
Expand Down Expand Up @@ -499,6 +499,13 @@ class IdProvider {

@override
String toString() => "IdProvider<type:${type.toString()}, id:$id>";

bool operator ==(other) {
return (other is IdProvider && other.type == type && other.id == id);
}

int get hashCode => hashCode;

}

class _CacheEntry {
Expand Down

0 comments on commit 982bc3a

Please sign in to comment.