1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
const { toPronoteWeek } = require('../data/dates');
const { getFileURL } = require('../data/files');
const fromHTML = require('../data/html');
const { withId, checkDuplicates } = require('../data/id');
const getHomeworks = require('./pronote/homeworks');
async function homeworks(session, user, from = new Date(), to = null)
{
if (!to || to < from) {
to = new Date(from.getTime());
to.setDate(to.getDate() + 1);
}
const fromWeek = toPronoteWeek(session, from);
const toWeek = toPronoteWeek(session, to);
const homeworks = await getHomeworks(session, user, fromWeek, toWeek);
if (!homeworks) {
return null;
}
const result = [];
for (const homework of homeworks) {
if (homework.for < from || homework.for > to) {
continue;
}
result.push(withId({
description: fromHTML(homework.description),
htmlDescription: homework.description,
subject: homework.subject.name,
givenAt: homework.givenAt,
for: homework.for,
done: homework.done,
color: homework.color,
files: homework.files.map(f => withId({ name: f.name, url: getFileURL(session, f) }, ['name']))
}, 'subject', 'givenAt'));
}
return checkDuplicates(result).sort((a, b) => a.for - b.for);
}
module.exports = homeworks;
|