ecoledirecte.js
Version:
Good-looking client for EcoleDirecte's private API.
63 lines (62 loc) • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.tickAssignement = exports.getTextbookPage = exports.getUpcomingAssignementDates = void 0;
const v3_1 = require("ecoledirecte-api-types/v3");
const util_1 = require("../util");
/**
* @param id Account id
* @param token Auth token
*/
async function getUpcomingAssignementDates(id, token, context = {}) {
const body = await (0, util_1.makeRequest)({
method: "POST",
path: v3_1.Routes.studentHomework(id),
body: { token },
guard: true,
}, { userId: id, action: "getUpcomingAssignementDates", ...context });
const dates = Object.keys(body.data); // .map((date) => new Date(date));
return { dates, token: body.token || token };
}
exports.getUpcomingAssignementDates = getUpcomingAssignementDates;
/**
* @param id Account id
* @param token Auth token
* @param date Date of the textbook page (YYYY-MM-DD)
*/
async function getTextbookPage(id, token, date, context = {}) {
const body = await (0, util_1.makeRequest)({
method: "POST",
path: v3_1.Routes.studentHomeworkDate(id, date),
body: { token },
guard: true,
}, { userId: id, action: "getTextbookPage", ...context });
return body;
}
exports.getTextbookPage = getTextbookPage;
async function tickAssignement(id, token, assignement, state, context = {}) {
var _a;
if (!("aFaire" in assignement))
throw Error("No work in this assignement.");
if (state === undefined)
state = !((_a = assignement.aFaire) === null || _a === void 0 ? void 0 : _a.effectue);
const data = {
token: token,
};
if (state)
data.idDevoirsEffectues = [assignement.id];
if (!state)
data.idDevoirsNonEffectues = [assignement.id];
const body = await (0, util_1.makeRequest)({
method: "POST",
path: v3_1.Routes.studentHomework(id, { verbe: "put" }),
body: data,
guard: true,
}, {
userId: id,
assignementId: assignement.id,
action: "tickAssignement",
...context,
});
return body;
}
exports.tickAssignement = tickAssignement;