webuntis-client 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -33,7 +33,7 @@ await client.login();
33
33
  await client.logout();
34
34
  ```
35
35
 
36
- ### Timetable
36
+ ### Own Timetable
37
37
 
38
38
  ```typescript
39
39
  const start = new Date("2026");
@@ -42,6 +42,15 @@ const end = new Date("2027");
42
42
  await client.getOwnTimetable(start, end);
43
43
  ```
44
44
 
45
+ ### Class Timetable
46
+
47
+ ```typescript
48
+ const start = new Date("2026");
49
+ const end = new Date("2027");
50
+
51
+ await client.getClassTimetable(start, end);
52
+ ```
53
+
45
54
  ### Homeworks and Lessons
46
55
 
47
56
  ```typescript
@@ -61,6 +61,10 @@ export declare class WebUntisClient {
61
61
  * Get tenant information from cache
62
62
  */
63
63
  getTenant(): Tenant;
64
+ /**
65
+ * Get tenant display name from cache
66
+ */
67
+ getTenantDisplayName(): string;
64
68
  /**
65
69
  * Check if UI 2020 is enabled
66
70
  */
@@ -73,6 +77,10 @@ export declare class WebUntisClient {
73
77
  * Get student id from cache
74
78
  */
75
79
  getStudentId(): string;
80
+ /**
81
+ * Get student display name from cache
82
+ */
83
+ getStudentDisplayName(): string;
76
84
  /**
77
85
  * Get user permissions from cache
78
86
  */
@@ -1 +1 @@
1
- {"version":3,"file":"WebUntis.d.ts","sourceRoot":"","sources":["../src/WebUntis.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEjF,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAG3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAG7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;gBAEvC,WAAW,EAAE,WAAW;IAsCpC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IASnC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,UAAU,IAAI,WAAW,GAAG,IAAI;IAQhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC;;OAEG;IACH,oBAAoB,IAAI,iBAAiB;IAIzC;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAI3B;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAI3B;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;IAQxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IASpC;;;;;OAKG;IACG,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAK5E;;;;;OAKG;IACG,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAShF;;;;;OAKG;IACG,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAShF;;;;;OAKG;IACG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IASxE;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAS/B"}
1
+ {"version":3,"file":"WebUntis.d.ts","sourceRoot":"","sources":["../src/WebUntis.ts"],"names":[],"mappings":"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"}
package/dist/WebUntis.js CHANGED
@@ -115,6 +115,12 @@ export class WebUntisClient {
115
115
  getTenant() {
116
116
  return this._appDataService.getTenant();
117
117
  }
118
+ /**
119
+ * Get tenant display name from cache
120
+ */
121
+ getTenantDisplayName() {
122
+ return this._appDataService.getTenantDisplayName();
123
+ }
118
124
  /**
119
125
  * Check if UI 2020 is enabled
120
126
  */
@@ -133,6 +139,12 @@ export class WebUntisClient {
133
139
  getStudentId() {
134
140
  return this._appDataService.getStudentId();
135
141
  }
142
+ /**
143
+ * Get student display name from cache
144
+ */
145
+ getStudentDisplayName() {
146
+ return this._appDataService.getStudentDisplayName();
147
+ }
136
148
  /**
137
149
  * Get user permissions from cache
138
150
  */
@@ -21,8 +21,8 @@ export class AbsencesService {
21
21
  * Build query parameters for absences request
22
22
  */
23
23
  _buildAbsencesParams(start, end) {
24
- const startDate = UtilsDate.formatDate(start, 'YYYYMMDD');
25
- const endDate = UtilsDate.formatDate(end, 'YYYYMMDD');
24
+ const startDate = UtilsDate.toUntisDate(start, 'YYYYMMDD');
25
+ const endDate = UtilsDate.toUntisDate(end, 'YYYYMMDD');
26
26
  const studentId = this._getStudentId();
27
27
  const excuseStatusId = '-1';
28
28
  return new URLSearchParams({
@@ -39,6 +39,10 @@ export declare class AppDataService {
39
39
  * Get tenant information from cache
40
40
  */
41
41
  getTenant(): Tenant;
42
+ /**
43
+ * Get tenant display name from cache
44
+ */
45
+ getTenantDisplayName(): string;
42
46
  /**
43
47
  * Check if UI 2020 is enabled
44
48
  */
@@ -51,6 +55,10 @@ export declare class AppDataService {
51
55
  * Get student id from cache
52
56
  */
53
57
  getStudentId(): string;
58
+ /**
59
+ * Get student id from cache
60
+ */
61
+ getStudentDisplayName(): string;
54
62
  /**
55
63
  * Get user permissions from cache
56
64
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AppData.d.ts","sourceRoot":"","sources":["../../src/services/AppData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEpG;;GAEG;AACH,qBAAa,cAAc;IAInB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAH/B,OAAO,CAAC,KAAK,CAAwB;gBAGhB,UAAU,EAAE,SAAS;IAI1C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACH,oBAAoB,IAAI,iBAAiB;IAKzC;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAKhC;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAK3B;;OAEG;IACH,YAAY,IAAI,OAAO;IAKvB;;OAEG;IACH,eAAe,IAAI,YAAY;IAK/B;;OAEG;IACH,SAAS,IAAI,MAAM;IAKnB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAKnB;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,YAAY,IAAI,MAAM;IAKtB;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAK1B;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAKvB;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAK3B;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAK9B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAK7B;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;IASxB,OAAO,CAAC,cAAc;CAOzB"}
1
+ {"version":3,"file":"AppData.d.ts","sourceRoot":"","sources":["../../src/services/AppData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEpG;;GAEG;AACH,qBAAa,cAAc;IAInB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAH/B,OAAO,CAAC,KAAK,CAAwB;gBAGhB,UAAU,EAAE,SAAS;IAI1C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACH,oBAAoB,IAAI,iBAAiB;IAKzC;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAKhC;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAK3B;;OAEG;IACH,YAAY,IAAI,OAAO;IAKvB;;OAEG;IACH,eAAe,IAAI,YAAY;IAK/B;;OAEG;IACH,SAAS,IAAI,MAAM;IAKnB;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAK9B;;OAEG;IACH,QAAQ,IAAI,OAAO;IAKnB;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,YAAY,IAAI,MAAM;IAKtB;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAK/B;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAK1B;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAKvB;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAK3B;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAK9B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAK7B;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;IASxB,OAAO,CAAC,cAAc;CAOzB"}
@@ -64,6 +64,13 @@ export class AppDataService {
64
64
  this._ensureHasData();
65
65
  return this._data.tenant;
66
66
  }
67
+ /**
68
+ * Get tenant display name from cache
69
+ */
70
+ getTenantDisplayName() {
71
+ this._ensureHasData();
72
+ return this._data.tenant.displayName;
73
+ }
67
74
  /**
68
75
  * Check if UI 2020 is enabled
69
76
  */
@@ -85,6 +92,13 @@ export class AppDataService {
85
92
  this._ensureHasData();
86
93
  return this._data.user.person.id.toString();
87
94
  }
95
+ /**
96
+ * Get student id from cache
97
+ */
98
+ getStudentDisplayName() {
99
+ this._ensureHasData();
100
+ return this._data.user.person.displayName;
101
+ }
88
102
  /**
89
103
  * Get user permissions from cache
90
104
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Homeworks.d.ts","sourceRoot":"","sources":["../../src/services/Homeworks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD;;GAEG;AACH,qBAAa,gBAAgB;IACb,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,SAAS;IAElD;;OAEG;IACG,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMhF;;OAEG;IACH,OAAO,CAAC,4BAA4B;CAYvC"}
1
+ {"version":3,"file":"Homeworks.d.ts","sourceRoot":"","sources":["../../src/services/Homeworks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD;;GAEG;AACH,qBAAa,gBAAgB;IACb,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,SAAS;IAGlD;;OAEG;IACG,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMhF;;OAEG;IACH,OAAO,CAAC,4BAA4B;CAYvC"}
@@ -19,11 +19,11 @@ export class HomeworksService {
19
19
  * Build query parameters for homeworks and lessons request
20
20
  */
21
21
  _buildHomeworksLessonsParams(start, end) {
22
- const startDate = UtilsDate.formatDate(start, "YYYYMMDD");
23
- const endDate = UtilsDate.formatDate(end, "YYYYMMDD");
22
+ const startDate = UtilsDate.toUntisDate(start, 'YYYYMMDD');
23
+ const endDate = UtilsDate.toUntisDate(end, 'YYYYMMDD');
24
24
  return new URLSearchParams({
25
25
  startDate: startDate,
26
- endDate: endDate,
26
+ endDate: endDate
27
27
  });
28
28
  }
29
29
  }
@@ -36,8 +36,8 @@ export class TimetableService {
36
36
  * Build query parameters for timetable request
37
37
  */
38
38
  _buildTimetableParams(start, end, resourceType, personId) {
39
- const startDate = UtilsDate.formatDate(start);
40
- const endDate = UtilsDate.formatDate(end);
39
+ const startDate = UtilsDate.toUntisDate(start);
40
+ const endDate = UtilsDate.toUntisDate(end);
41
41
  const timetableType = resourceType === 'STUDENT' ? 'MY_TIMETABLE' : 'STANDARD';
42
42
  return new URLSearchParams({
43
43
  start: startDate,
@@ -1,8 +1,12 @@
1
- export type Format = "YYYY-MM-DD" | "YYYYMMDD";
1
+ export type Format = 'YYYY-MM-DD' | 'YYYYMMDD';
2
2
  export declare class UtilsDate {
3
3
  /**
4
4
  * Format date to YYYY-MM-DD or YYYYMMDD
5
5
  */
6
- static formatDate(date: Date, format?: Format): string;
6
+ static toUntisDate(date: Date, format?: Format): string;
7
+ /**
8
+ * Parse date from YYYY-MM-DD or YYYYMMDD format
9
+ */
10
+ static fromUntisDate(date: string, format?: Format): Date;
7
11
  }
8
12
  //# sourceMappingURL=date.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/C,qBAAa,SAAS;IAClB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,MAAqB,GAAG,MAAM;CASvE"}
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/C,qBAAa,SAAS;IAClB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,MAAqB,GAAG,MAAM;IAUrE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAqB,GAAG,IAAI;CAY1E"}
@@ -2,11 +2,25 @@ export class UtilsDate {
2
2
  /**
3
3
  * Format date to YYYY-MM-DD or YYYYMMDD
4
4
  */
5
- static formatDate(date, format = "YYYY-MM-DD") {
5
+ static toUntisDate(date, format = 'YYYY-MM-DD') {
6
6
  const isoDate = date.toISOString().split('T')[0];
7
- if (format === "YYYYMMDD") {
7
+ if (format === 'YYYYMMDD') {
8
8
  return isoDate.replace(/-/g, '');
9
9
  }
10
10
  return isoDate;
11
11
  }
12
+ /**
13
+ * Parse date from YYYY-MM-DD or YYYYMMDD format
14
+ */
15
+ static fromUntisDate(date, format = 'YYYY-MM-DD') {
16
+ let normalizedDate;
17
+ if (format === 'YYYYMMDD') {
18
+ // Convert YYYYMMDD to YYYY-MM-DD
19
+ normalizedDate = `${date.slice(0, 4)}-${date.slice(4, 6)}-${date.slice(6, 8)}`;
20
+ }
21
+ else {
22
+ normalizedDate = date;
23
+ }
24
+ return new Date(normalizedDate);
25
+ }
12
26
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webuntis-client",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "A Web Untis API Client",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",