|
1 | 1 | import { Api } from "./api"; |
2 | 2 | import { |
| 3 | + DATA_ATTENDANCE, DATA_EXAM, |
3 | 4 | DATA_GRADE, |
| 5 | + DATA_HOMEWORK, |
4 | 6 | DATA_LUCKY_NUMBER, |
| 7 | + DATA_MESSAGE, |
| 8 | + DATA_MESSAGEBOX, |
5 | 9 | DATA_TIMETABLE, |
6 | 10 | DATA_TIMETABLE_CHANGES, |
7 | 11 | DEVICE_REGISTER, |
8 | | - STUDENT_LIST, |
| 12 | + STUDENT_LIST |
9 | 13 | } from "./endpoints"; |
10 | 14 | import { Keystore } from "./keystore"; |
11 | | -import { uuid, getBaseUrl, APP_OS } from "./utils"; |
| 15 | +import { APP_OS, getBaseUrl, uuid } from "./utils"; |
12 | 16 | import { FilterType } from "./apiHelper"; |
13 | 17 | import dateFormat from "dateformat"; |
14 | | -import { |
15 | | - Account, |
16 | | - LuckyNumber, |
17 | | - Student, |
18 | | - Lesson, |
19 | | - Grade, |
20 | | - ChangedLesson, |
21 | | -} from "./models"; |
| 18 | +import { Account, ChangedLesson, Grade, Lesson, LuckyNumber, Student } from "./models"; |
| 19 | +import { MessageBox } from "./models/messageBox"; |
| 20 | +import { Message } from "./models/message"; |
| 21 | +import { Homework } from "./models/homework"; |
| 22 | +import { Attendance } from "./models/attendance"; |
| 23 | +import {Exam} from "./models/exam"; |
22 | 24 |
|
23 | 25 | export { AccountTools } from "./utils"; |
24 | 26 | export * from "./keystore"; |
@@ -154,4 +156,78 @@ export class VulcanHebe { |
154 | 156 | ) |
155 | 157 | )) as Grade[]; |
156 | 158 | } |
| 159 | + public async getMessageBoxes() { |
| 160 | + const data = await this.api.helper.getList( |
| 161 | + DATA_MESSAGEBOX, |
| 162 | + ); |
| 163 | + return (Promise.all( |
| 164 | + data.map(async (messageBox: MessageBox) => |
| 165 | + new MessageBox().serialize(messageBox) |
| 166 | + ) |
| 167 | + )); |
| 168 | + } |
| 169 | + public async getMessages(messageBox: string) { |
| 170 | + const data = await this.api.helper.getList( |
| 171 | + DATA_MESSAGE, |
| 172 | + undefined, |
| 173 | + undefined, |
| 174 | + undefined, |
| 175 | + undefined, |
| 176 | + FilterType.BY_MESSAGEBOX, |
| 177 | + messageBox, |
| 178 | + 1, |
| 179 | + ); |
| 180 | + return (Promise.all( |
| 181 | + data.map(async (message: Message) => |
| 182 | + new Message().serialize(message) |
| 183 | + ) |
| 184 | + )); |
| 185 | + } |
| 186 | + public async getHomework() { |
| 187 | + const data = await this.api.helper.getList( |
| 188 | + DATA_HOMEWORK, |
| 189 | + undefined, |
| 190 | + undefined, |
| 191 | + undefined, |
| 192 | + undefined, |
| 193 | + FilterType.BY_PUPIL |
| 194 | + ); |
| 195 | + return (Promise.all( |
| 196 | + data.map(async (homework: Homework) => |
| 197 | + new Homework().serialize(homework) |
| 198 | + ) |
| 199 | + )); |
| 200 | + } |
| 201 | + public async getAttendance(from: Date, to: Date) { |
| 202 | + const millisInOneDay = 86400000; |
| 203 | + to.setTime(to.getTime() + millisInOneDay); |
| 204 | + const data = await this.api.helper.getList( |
| 205 | + DATA_ATTENDANCE, |
| 206 | + false, |
| 207 | + undefined, |
| 208 | + from, |
| 209 | + to, |
| 210 | + FilterType.BY_PUPIL |
| 211 | + ); |
| 212 | + return (Promise.all( |
| 213 | + data.map(async (attendance: Attendance) => |
| 214 | + new Attendance().serialize(attendance) |
| 215 | + ) |
| 216 | + )); |
| 217 | + } |
| 218 | + public async getExams(lastSync?: Date): Promise<Exam[]> { |
| 219 | + const data = await this.api.helper.getList( |
| 220 | + DATA_EXAM, |
| 221 | + false, |
| 222 | + lastSync, |
| 223 | + undefined, |
| 224 | + undefined, |
| 225 | + FilterType.BY_PUPIL |
| 226 | + ); |
| 227 | + return (Promise.all( |
| 228 | + data.map(async (exam: any) => |
| 229 | + new Exam().serialize(exam) |
| 230 | + ) |
| 231 | + )); |
| 232 | + } |
157 | 233 | } |
0 commit comments