zdu-student-api 1.1.6 → 1.1.8
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/LICENSE +21 -0
- package/README.md +231 -18
- package/dist/cabinet/cabinet.d.ts +79 -79
- package/dist/cabinet/cabinet.js +162 -162
- package/dist/cabinet/data.d.ts +33 -4
- package/dist/cabinet/data.js +52 -6
- package/dist/cabinet/disciplines.d.ts +19 -19
- package/dist/cabinet/disciplines.js +87 -87
- package/dist/cabinet/index.d.ts +2 -5
- package/dist/cabinet/index.js +2 -5
- package/dist/cabinet/parsers.d.ts +22 -3
- package/dist/cabinet/parsers.js +118 -0
- package/dist/cabinet/scores.d.ts +12 -12
- package/dist/cabinet/scores.js +101 -101
- package/dist/cabinet/sesId.d.ts +10 -10
- package/dist/cabinet/sesId.js +40 -40
- package/dist/cabinet/session.d.ts +33 -0
- package/dist/cabinet/session.js +99 -0
- package/dist/cabinet/types.d.ts +0 -137
- package/dist/cabinet/utils.d.ts +6 -6
- package/dist/cabinet/utils.js +16 -19
- package/dist/cabinet/validSession.d.ts +8 -8
- package/dist/cabinet/validSession.js +29 -29
- package/dist/cabinetStudent/cabinetStudent.d.ts +87 -0
- package/dist/cabinetStudent/cabinetStudent.js +185 -0
- package/dist/cabinetStudent/disciplines.d.ts +19 -0
- package/dist/cabinetStudent/disciplines.js +86 -0
- package/dist/cabinetStudent/index.d.ts +4 -0
- package/dist/cabinetStudent/index.js +4 -0
- package/dist/cabinetStudent/scores.d.ts +12 -0
- package/dist/cabinetStudent/scores.js +103 -0
- package/dist/cabinetStudent/types.d.ts +137 -0
- package/dist/cabinetStudent/types.js +1 -0
- package/dist/cabinetTeacher/academicGroups.d.ts +10 -0
- package/dist/cabinetTeacher/academicGroups.js +36 -0
- package/dist/cabinetTeacher/cabinetTeacher.d.ts +71 -0
- package/dist/cabinetTeacher/cabinetTeacher.js +132 -0
- package/dist/cabinetTeacher/index.d.ts +3 -0
- package/dist/cabinetTeacher/index.js +3 -0
- package/dist/cabinetTeacher/types.d.ts +68 -0
- package/dist/cabinetTeacher/types.js +1 -0
- package/dist/examples.d.ts +1 -1
- package/dist/examples.js +50 -38
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/types.d.ts +4 -3
- package/package.json +35 -34
package/dist/cabinet/cabinet.js
CHANGED
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
import { getSesId } from './sesId.js';
|
|
2
|
-
import { isValidSession } from './validSession.js';
|
|
3
|
-
import { getСurrentDisciplines } from './disciplines.js';
|
|
4
|
-
import { getData } from './data.js';
|
|
5
|
-
import { getScores } from './scores.js';
|
|
6
|
-
/**
|
|
7
|
-
* Клас кабінету студента
|
|
8
|
-
* @category Cabinet
|
|
9
|
-
*/
|
|
10
|
-
export class Cabinet {
|
|
11
|
-
/**
|
|
12
|
-
* Прізвище користувача
|
|
13
|
-
*/
|
|
14
|
-
login;
|
|
15
|
-
/**
|
|
16
|
-
* Пароль від кабінету студента
|
|
17
|
-
*/
|
|
18
|
-
password;
|
|
19
|
-
/**
|
|
20
|
-
* ID сесії користувача
|
|
21
|
-
*/
|
|
22
|
-
sesID;
|
|
23
|
-
/**
|
|
24
|
-
* GUID сесії з cookie
|
|
25
|
-
*/
|
|
26
|
-
sessGUID;
|
|
27
|
-
/**
|
|
28
|
-
* Семестр для пошуку оцінок (0 - перший, 1 - другий)
|
|
29
|
-
*/
|
|
30
|
-
semester = 0;
|
|
31
|
-
/**
|
|
32
|
-
* Список дисциплін {@link Discipline}
|
|
33
|
-
*/
|
|
34
|
-
disciplines = [];
|
|
35
|
-
/**
|
|
36
|
-
* Данні студента {@link Data}
|
|
37
|
-
*/
|
|
38
|
-
data;
|
|
39
|
-
/**
|
|
40
|
-
* Оціки з усіх предметів {@link Scores}
|
|
41
|
-
*/
|
|
42
|
-
allScores;
|
|
43
|
-
/**
|
|
44
|
-
* Конструктор
|
|
45
|
-
* @param login - Прізвище користувача
|
|
46
|
-
* @param password - Пароль
|
|
47
|
-
*/
|
|
48
|
-
constructor(login, password) {
|
|
49
|
-
this.login = login;
|
|
50
|
-
this.password = password;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Авторизація
|
|
54
|
-
*/
|
|
55
|
-
async auth(login, password) {
|
|
56
|
-
const accountData = await getSesId(login ?? this.login, password ?? this.password);
|
|
57
|
-
this.setSemester();
|
|
58
|
-
if (accountData.ok) {
|
|
59
|
-
this.sesID = accountData.sesID;
|
|
60
|
-
this.sessGUID = accountData.sessGUID;
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Базове значення семестру
|
|
67
|
-
*/
|
|
68
|
-
setSemester() {
|
|
69
|
-
const year = new Date().getFullYear();
|
|
70
|
-
const febStart = new Date(year, 1, 1); // лютий = 1
|
|
71
|
-
const sepStart = new Date(year, 8, 1); // вересень = 8
|
|
72
|
-
const date = new Date();
|
|
73
|
-
if (!(date < febStart || date >= sepStart)) {
|
|
74
|
-
this.semester = 1;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Отримання всіх данних
|
|
79
|
-
*/
|
|
80
|
-
async loadData() {
|
|
81
|
-
const one = (await this.getDisciplines()).ok;
|
|
82
|
-
const two = (await this.getData()).ok;
|
|
83
|
-
const three = (await this.getAllScores()).length > 0;
|
|
84
|
-
return one && two && three;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Відновлення сесії
|
|
88
|
-
*/
|
|
89
|
-
async setSession(sesID, sessGUID) {
|
|
90
|
-
this.setSemester();
|
|
91
|
-
const ses = await isValidSession(sesID, sessGUID);
|
|
92
|
-
if (ses) {
|
|
93
|
-
this.sesID = sesID;
|
|
94
|
-
this.sessGUID = sessGUID;
|
|
95
|
-
}
|
|
96
|
-
return ses;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Перевірка валідності сесії
|
|
100
|
-
*/
|
|
101
|
-
async isValidSession() {
|
|
102
|
-
if (!this.sesID || !this.sessGUID)
|
|
103
|
-
return false;
|
|
104
|
-
return await isValidSession(this.sesID, this.sessGUID);
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Отримати дисципліни поточного семестру студента
|
|
108
|
-
* @returns Масив дисциплін {@link Disciplines}
|
|
109
|
-
*/
|
|
110
|
-
async getDisciplines() {
|
|
111
|
-
if (!this.sesID || !this.sessGUID)
|
|
112
|
-
return { ok: false, disciplines: [] };
|
|
113
|
-
try {
|
|
114
|
-
const disciplinesData = await getСurrentDisciplines(this.sesID, this.sessGUID);
|
|
115
|
-
if (disciplinesData.ok) {
|
|
116
|
-
this.disciplines = disciplinesData.disciplines;
|
|
117
|
-
}
|
|
118
|
-
return disciplinesData;
|
|
119
|
-
}
|
|
120
|
-
catch {
|
|
121
|
-
return { ok: false, disciplines: [] };
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Отримати анкетні данні студента
|
|
126
|
-
* @returns Об'єкт {@link ata}
|
|
127
|
-
*/
|
|
128
|
-
async getData() {
|
|
129
|
-
if (!this.sesID || !this.sessGUID)
|
|
130
|
-
return { ok: false };
|
|
131
|
-
try {
|
|
132
|
-
const data = await getData(this.sesID, this.sessGUID);
|
|
133
|
-
if (data.ok) {
|
|
134
|
-
this.data = data;
|
|
135
|
-
}
|
|
136
|
-
return data;
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
return { ok: false };
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Отримати оцінки з всіх предметів
|
|
144
|
-
*/
|
|
145
|
-
async getAllScores(semester) {
|
|
146
|
-
if (!this.sesID || !this.sessGUID)
|
|
147
|
-
return [];
|
|
148
|
-
if (!this.disciplines?.length)
|
|
149
|
-
return [];
|
|
150
|
-
const targetSemester = semester ?? this.semester;
|
|
151
|
-
try {
|
|
152
|
-
const scorePromises = this.disciplines.map((discipline) => getScores(this.sesID, this.sessGUID, discipline.prId, targetSemester));
|
|
153
|
-
const results = await Promise.all(scorePromises);
|
|
154
|
-
const allScores = results.filter((scores) => scores.ok);
|
|
155
|
-
this.allScores = allScores;
|
|
156
|
-
return allScores;
|
|
157
|
-
}
|
|
158
|
-
catch {
|
|
159
|
-
return [];
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
1
|
+
import { getSesId } from './sesId.js';
|
|
2
|
+
import { isValidSession } from './validSession.js';
|
|
3
|
+
import { getСurrentDisciplines } from './disciplines.js';
|
|
4
|
+
import { getData } from './data.js';
|
|
5
|
+
import { getScores } from './scores.js';
|
|
6
|
+
/**
|
|
7
|
+
* Клас кабінету студента
|
|
8
|
+
* @category Cabinet
|
|
9
|
+
*/
|
|
10
|
+
export class Cabinet {
|
|
11
|
+
/**
|
|
12
|
+
* Прізвище користувача
|
|
13
|
+
*/
|
|
14
|
+
login;
|
|
15
|
+
/**
|
|
16
|
+
* Пароль від кабінету студента
|
|
17
|
+
*/
|
|
18
|
+
password;
|
|
19
|
+
/**
|
|
20
|
+
* ID сесії користувача
|
|
21
|
+
*/
|
|
22
|
+
sesID;
|
|
23
|
+
/**
|
|
24
|
+
* GUID сесії з cookie
|
|
25
|
+
*/
|
|
26
|
+
sessGUID;
|
|
27
|
+
/**
|
|
28
|
+
* Семестр для пошуку оцінок (0 - перший, 1 - другий)
|
|
29
|
+
*/
|
|
30
|
+
semester = 0;
|
|
31
|
+
/**
|
|
32
|
+
* Список дисциплін {@link Discipline}
|
|
33
|
+
*/
|
|
34
|
+
disciplines = [];
|
|
35
|
+
/**
|
|
36
|
+
* Данні студента {@link Data}
|
|
37
|
+
*/
|
|
38
|
+
data;
|
|
39
|
+
/**
|
|
40
|
+
* Оціки з усіх предметів {@link Scores}
|
|
41
|
+
*/
|
|
42
|
+
allScores;
|
|
43
|
+
/**
|
|
44
|
+
* Конструктор
|
|
45
|
+
* @param login - Прізвище користувача
|
|
46
|
+
* @param password - Пароль
|
|
47
|
+
*/
|
|
48
|
+
constructor(login, password) {
|
|
49
|
+
this.login = login;
|
|
50
|
+
this.password = password;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Авторизація
|
|
54
|
+
*/
|
|
55
|
+
async auth(login, password) {
|
|
56
|
+
const accountData = await getSesId(login ?? this.login, password ?? this.password);
|
|
57
|
+
this.setSemester();
|
|
58
|
+
if (accountData.ok) {
|
|
59
|
+
this.sesID = accountData.sesID;
|
|
60
|
+
this.sessGUID = accountData.sessGUID;
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Базове значення семестру
|
|
67
|
+
*/
|
|
68
|
+
setSemester() {
|
|
69
|
+
const year = new Date().getFullYear();
|
|
70
|
+
const febStart = new Date(year, 1, 1); // лютий = 1
|
|
71
|
+
const sepStart = new Date(year, 8, 1); // вересень = 8
|
|
72
|
+
const date = new Date();
|
|
73
|
+
if (!(date < febStart || date >= sepStart)) {
|
|
74
|
+
this.semester = 1;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Отримання всіх данних
|
|
79
|
+
*/
|
|
80
|
+
async loadData() {
|
|
81
|
+
const one = (await this.getDisciplines()).ok;
|
|
82
|
+
const two = (await this.getData()).ok;
|
|
83
|
+
const three = (await this.getAllScores()).length > 0;
|
|
84
|
+
return one && two && three;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Відновлення сесії
|
|
88
|
+
*/
|
|
89
|
+
async setSession(sesID, sessGUID) {
|
|
90
|
+
this.setSemester();
|
|
91
|
+
const ses = await isValidSession(sesID, sessGUID);
|
|
92
|
+
if (ses) {
|
|
93
|
+
this.sesID = sesID;
|
|
94
|
+
this.sessGUID = sessGUID;
|
|
95
|
+
}
|
|
96
|
+
return ses;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Перевірка валідності сесії
|
|
100
|
+
*/
|
|
101
|
+
async isValidSession() {
|
|
102
|
+
if (!this.sesID || !this.sessGUID)
|
|
103
|
+
return false;
|
|
104
|
+
return await isValidSession(this.sesID, this.sessGUID);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Отримати дисципліни поточного семестру студента
|
|
108
|
+
* @returns Масив дисциплін {@link Disciplines}
|
|
109
|
+
*/
|
|
110
|
+
async getDisciplines() {
|
|
111
|
+
if (!this.sesID || !this.sessGUID)
|
|
112
|
+
return { ok: false, disciplines: [] };
|
|
113
|
+
try {
|
|
114
|
+
const disciplinesData = await getСurrentDisciplines(this.sesID, this.sessGUID);
|
|
115
|
+
if (disciplinesData.ok) {
|
|
116
|
+
this.disciplines = disciplinesData.disciplines;
|
|
117
|
+
}
|
|
118
|
+
return disciplinesData;
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return { ok: false, disciplines: [] };
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Отримати анкетні данні студента
|
|
126
|
+
* @returns Об'єкт {@link ata}
|
|
127
|
+
*/
|
|
128
|
+
async getData() {
|
|
129
|
+
if (!this.sesID || !this.sessGUID)
|
|
130
|
+
return { ok: false };
|
|
131
|
+
try {
|
|
132
|
+
const data = await getData(this.sesID, this.sessGUID);
|
|
133
|
+
if (data.ok) {
|
|
134
|
+
this.data = data;
|
|
135
|
+
}
|
|
136
|
+
return data;
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
return { ok: false };
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Отримати оцінки з всіх предметів
|
|
144
|
+
*/
|
|
145
|
+
async getAllScores(semester) {
|
|
146
|
+
if (!this.sesID || !this.sessGUID)
|
|
147
|
+
return [];
|
|
148
|
+
if (!this.disciplines?.length)
|
|
149
|
+
return [];
|
|
150
|
+
const targetSemester = semester ?? this.semester;
|
|
151
|
+
try {
|
|
152
|
+
const scorePromises = this.disciplines.map((discipline) => getScores(this.sesID, this.sessGUID, discipline.prId, targetSemester));
|
|
153
|
+
const results = await Promise.all(scorePromises);
|
|
154
|
+
const allScores = results.filter((scores) => scores.ok);
|
|
155
|
+
this.allScores = allScores;
|
|
156
|
+
return allScores;
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
return [];
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
package/dist/cabinet/data.d.ts
CHANGED
|
@@ -1,13 +1,42 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DataTeacher } from '../cabinetTeacher/types.js';
|
|
2
|
+
import { DataStudent } from '../cabinetStudent/types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Отримати анкетні дані студента
|
|
4
|
-
* @category
|
|
5
|
+
* @category CabinetTeacher
|
|
5
6
|
* @param sesId - ID сесії користувача
|
|
6
7
|
* @param sessGUID - GUID сесії з cookie
|
|
7
8
|
* @throws {Error} Якщо виникають проблеми з запитом або дані некоректні.
|
|
8
9
|
* @example
|
|
9
10
|
* ```typescript
|
|
10
|
-
* const
|
|
11
|
+
* const cb = new CabinetTeacher(process.env.LOGINTEACHER!, process.env.PASSWORDTEACHER!);
|
|
12
|
+
* const data = await cb.getData(sesId, sessGUID);
|
|
13
|
+
* // {
|
|
14
|
+
* ok: true,
|
|
15
|
+
* fullName: 'Іванов Іван Іванович',
|
|
16
|
+
* lastName: 'Іванов',
|
|
17
|
+
* firstName: 'Іван',
|
|
18
|
+
* middleName: 'Іванович',
|
|
19
|
+
* department: 'Кафедра комп’ютерних наук та інформаційних технологій',
|
|
20
|
+
* partTimeHours: 0,
|
|
21
|
+
* workDurationMonths: 10,
|
|
22
|
+
* totalPositionHours: 0,
|
|
23
|
+
* workloadByStaff: 68,
|
|
24
|
+
* totalWorkload: 68
|
|
25
|
+
* // }
|
|
26
|
+
* ```
|
|
27
|
+
* @returns Об'єкт з запарсеними даними {@link DataTeacher}
|
|
28
|
+
*/
|
|
29
|
+
export declare function getDataTeacher(sesId: string, sessGUID: string): Promise<DataTeacher>;
|
|
30
|
+
/**
|
|
31
|
+
* Отримати анкетні дані студента
|
|
32
|
+
* @category CabinetStudent
|
|
33
|
+
* @param sesId - ID сесії користувача
|
|
34
|
+
* @param sessGUID - GUID сесії з cookie
|
|
35
|
+
* @throws {Error} Якщо виникають проблеми з запитом або дані некоректні.
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const cb = new CabinetTeacher(process.env.LOGINSTUDENT!, process.env.PASSWORDSTUDENT!);
|
|
39
|
+
* const data = await cb.getData(sesId, sessGUID);
|
|
11
40
|
* // {
|
|
12
41
|
* // ok: true,
|
|
13
42
|
* // fullName: 'Іванов Іван Іванович',
|
|
@@ -34,4 +63,4 @@ import { Data } from './types.js';
|
|
|
34
63
|
* ```
|
|
35
64
|
* @returns Об'єкт з запарсеними даними {@link Data}
|
|
36
65
|
*/
|
|
37
|
-
export declare function
|
|
66
|
+
export declare function getDataStudent(sesId: string, sessGUID: string): Promise<DataStudent>;
|
package/dist/cabinet/data.js
CHANGED
|
@@ -1,16 +1,62 @@
|
|
|
1
1
|
import fetch from 'cross-fetch';
|
|
2
2
|
import iconv from 'iconv-lite';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { generateCookieString, isLoginPage } from './session.js';
|
|
4
|
+
import { parseDataPageN3, parseDataPageN31, parseTeacherData } from './parsers.js';
|
|
5
5
|
/**
|
|
6
6
|
* Отримати анкетні дані студента
|
|
7
|
-
* @category
|
|
7
|
+
* @category CabinetTeacher
|
|
8
8
|
* @param sesId - ID сесії користувача
|
|
9
9
|
* @param sessGUID - GUID сесії з cookie
|
|
10
10
|
* @throws {Error} Якщо виникають проблеми з запитом або дані некоректні.
|
|
11
11
|
* @example
|
|
12
12
|
* ```typescript
|
|
13
|
-
* const
|
|
13
|
+
* const cb = new CabinetTeacher(process.env.LOGINTEACHER!, process.env.PASSWORDTEACHER!);
|
|
14
|
+
* const data = await cb.getData(sesId, sessGUID);
|
|
15
|
+
* // {
|
|
16
|
+
* ok: true,
|
|
17
|
+
* fullName: 'Іванов Іван Іванович',
|
|
18
|
+
* lastName: 'Іванов',
|
|
19
|
+
* firstName: 'Іван',
|
|
20
|
+
* middleName: 'Іванович',
|
|
21
|
+
* department: 'Кафедра комп’ютерних наук та інформаційних технологій',
|
|
22
|
+
* partTimeHours: 0,
|
|
23
|
+
* workDurationMonths: 10,
|
|
24
|
+
* totalPositionHours: 0,
|
|
25
|
+
* workloadByStaff: 68,
|
|
26
|
+
* totalWorkload: 68
|
|
27
|
+
* // }
|
|
28
|
+
* ```
|
|
29
|
+
* @returns Об'єкт з запарсеними даними {@link DataTeacher}
|
|
30
|
+
*/
|
|
31
|
+
export async function getDataTeacher(sesId, sessGUID) {
|
|
32
|
+
try {
|
|
33
|
+
const result = { ok: false };
|
|
34
|
+
const cookieString = generateCookieString(sessGUID);
|
|
35
|
+
const response1 = await fetch(`https://dekanat.zu.edu.ua/cgi-bin/kaf.cgi?n=2&sesID=${sesId}`, { headers: { Cookie: cookieString } });
|
|
36
|
+
const buffer = await response1.arrayBuffer();
|
|
37
|
+
const html = iconv.decode(Buffer.from(buffer), 'windows-1251');
|
|
38
|
+
if (isLoginPage(html))
|
|
39
|
+
return { ok: false };
|
|
40
|
+
const data = parseTeacherData(html);
|
|
41
|
+
Object.assign(result, data);
|
|
42
|
+
result.ok = true;
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
console.error('Error in getDataTeacher:', e);
|
|
47
|
+
throw e;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Отримати анкетні дані студента
|
|
52
|
+
* @category CabinetStudent
|
|
53
|
+
* @param sesId - ID сесії користувача
|
|
54
|
+
* @param sessGUID - GUID сесії з cookie
|
|
55
|
+
* @throws {Error} Якщо виникають проблеми з запитом або дані некоректні.
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const cb = new CabinetTeacher(process.env.LOGINSTUDENT!, process.env.PASSWORDSTUDENT!);
|
|
59
|
+
* const data = await cb.getData(sesId, sessGUID);
|
|
14
60
|
* // {
|
|
15
61
|
* // ok: true,
|
|
16
62
|
* // fullName: 'Іванов Іван Іванович',
|
|
@@ -37,7 +83,7 @@ import { generateCookieString, isLoginPage } from './utils.js';
|
|
|
37
83
|
* ```
|
|
38
84
|
* @returns Об'єкт з запарсеними даними {@link Data}
|
|
39
85
|
*/
|
|
40
|
-
export async function
|
|
86
|
+
export async function getDataStudent(sesId, sessGUID) {
|
|
41
87
|
try {
|
|
42
88
|
const result = { ok: false };
|
|
43
89
|
const cookieString = generateCookieString(sessGUID);
|
|
@@ -63,7 +109,7 @@ export async function getData(sesId, sessGUID) {
|
|
|
63
109
|
return result;
|
|
64
110
|
}
|
|
65
111
|
catch (e) {
|
|
66
|
-
console.error('Error in
|
|
112
|
+
console.error('Error in getDataStudent:', e);
|
|
67
113
|
throw e;
|
|
68
114
|
}
|
|
69
115
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { Disciplines } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Отримати всі дисципліни студента
|
|
4
|
-
* @category Cabinet
|
|
5
|
-
* @param sesId - ID сесії користувача
|
|
6
|
-
* @param sessGUID - GUID сесії з cookie
|
|
7
|
-
* @throws {Error} Якщо виникають проблеми з запитом або дані некоректні.
|
|
8
|
-
* @returns Масив дисциплін {@link Disciplines}
|
|
9
|
-
*/
|
|
10
|
-
export declare function getDisciplines(sesId: string, sessGUID: string): Promise<Disciplines>;
|
|
11
|
-
/**
|
|
12
|
-
* Отримати поточні дисципліни студента
|
|
13
|
-
* @category Cabinet
|
|
14
|
-
* @param sesId - ID сесії користувача
|
|
15
|
-
* @param sessGUID - GUID сесії з cookie
|
|
16
|
-
* @throws {Error} Якщо виникають проблеми з запитом або дані некоректні.
|
|
17
|
-
* @returns Масив дисциплін {@link Disciplines}
|
|
18
|
-
*/
|
|
19
|
-
export declare function getСurrentDisciplines(sesId: string, sessGUID: string): Promise<Disciplines>;
|
|
1
|
+
import { Disciplines } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Отримати всі дисципліни студента
|
|
4
|
+
* @category Cabinet
|
|
5
|
+
* @param sesId - ID сесії користувача
|
|
6
|
+
* @param sessGUID - GUID сесії з cookie
|
|
7
|
+
* @throws {Error} Якщо виникають проблеми з запитом або дані некоректні.
|
|
8
|
+
* @returns Масив дисциплін {@link Disciplines}
|
|
9
|
+
*/
|
|
10
|
+
export declare function getDisciplines(sesId: string, sessGUID: string): Promise<Disciplines>;
|
|
11
|
+
/**
|
|
12
|
+
* Отримати поточні дисципліни студента
|
|
13
|
+
* @category Cabinet
|
|
14
|
+
* @param sesId - ID сесії користувача
|
|
15
|
+
* @param sessGUID - GUID сесії з cookie
|
|
16
|
+
* @throws {Error} Якщо виникають проблеми з запитом або дані некоректні.
|
|
17
|
+
* @returns Масив дисциплін {@link Disciplines}
|
|
18
|
+
*/
|
|
19
|
+
export declare function getСurrentDisciplines(sesId: string, sessGUID: string): Promise<Disciplines>;
|