Skip to content

Commit 982bc3a

Browse files
IDProvider Fixes (#5)
* 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>
1 parent d65b459 commit 982bc3a

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ dart_webuntis:
1616
The basic tool used to interact with the API is the Session object.
1717
```dart
1818
// .init(server, school, username, password, Optional: useragent)
19-
Session mySession = await Session.init("demo.server.com", "demo_school", "demo_user", "demo_pass")
19+
Session mySession = await Session.init("demo.server.com", "demo_school", "demo_user", "demo_pass");
2020
// The ID of the account which credentials you used should now be available over the .userId attribute
2121
var myId = mySession.userId!;
2222
// Alternatively you can also search for a student

lib/untis.dart

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,11 @@ class Session {
146146
List.generate(
147147
period["kl"].length, (index) => IdProvider._withType(IdProviderTypes.KLASSE, period["kl"][index]["id"])),
148148
List.generate(
149-
period["te"].length, (index) => IdProvider._withType(IdProviderTypes.KLASSE, period["te"][index]["id"])),
149+
period["te"].length, (index) => IdProvider._withType(IdProviderTypes.TEACHER, period["te"][index]["id"])),
150150
List.generate(
151-
period["su"].length, (index) => IdProvider._withType(IdProviderTypes.KLASSE, period["su"][index]["id"])),
151+
period["su"].length, (index) => IdProvider._withType(IdProviderTypes.SUBJECT, period["su"][index]["id"])),
152152
List.generate(
153-
period["ro"].length, (index) => IdProvider._withType(IdProviderTypes.KLASSE, period["ro"][index]["id"])),
153+
period["ro"].length, (index) => IdProvider._withType(IdProviderTypes.ROOM, period["ro"][index]["id"])),
154154
period["activityType"],
155155
(period["code"] ?? "") == "cancelled",
156156
period["code"],
@@ -169,7 +169,7 @@ class Session {
169169
List<Subject> _parseSubjects(List<dynamic> rawSubjects) {
170170
return List.generate(rawSubjects.length, (index) {
171171
var subject = rawSubjects[index];
172-
return Subject._(IdProvider._internal(IdProviderTypes.STUDENT, subject["id"]), subject["name"],
172+
return Subject._(IdProvider._internal(IdProviderTypes.SUBJECT, subject["id"]), subject["name"],
173173
subject["longName"], subject["alternateName"]);
174174
});
175175
}
@@ -499,6 +499,13 @@ class IdProvider {
499499

500500
@override
501501
String toString() => "IdProvider<type:${type.toString()}, id:$id>";
502+
503+
bool operator ==(other) {
504+
return (other is IdProvider && other.type == type && other.id == id);
505+
}
506+
507+
int get hashCode => hashCode;
508+
502509
}
503510

504511
class _CacheEntry {

0 commit comments

Comments
 (0)