UNPKG

ecoledirecte.js

Version:

Good-looking client for EcoleDirecte's private API.

74 lines (73 loc) 2.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.tickAssignement = exports.Assignement = void 0; const v3_1 = require("ecoledirecte-api-types/v3"); const util_1 = require("../util"); const classes_1 = require("../classes"); class Assignement { constructor(o, date, student) { this.id = o.id; this.date = new Date(date); this.test = o.interrogation; this.subject = { name: o.matiere, code: o.codeMatiere, }; this.teacher = o.nomProf.startsWith(" par ") ? o.nomProf.substr(5) : o.nomProf; this.job = o.aFaire ? { content: new classes_1.ExpandedBase64(o.aFaire.contenu), givenAt: new Date(o.aFaire.donneLe), toReturnOnline: o.aFaire.rendreEnLigne, done: o.aFaire.effectue, lastContenuDeSeance: { content: new classes_1.ExpandedBase64(o.aFaire.contenuDeSeance.contenu), documents: o.aFaire.contenuDeSeance.documents, }, tick: async (newState) => { if (!this.job) throw new Error("'job' should be here"); if (newState === undefined) newState = !this.job.done; const res = await tickAssignement(student._raw.id, student.token, o, newState); student.token = (res === null || res === void 0 ? void 0 : res.token) || student.token; this.job.done = newState; return newState; }, } : undefined; this.contenuDeSeance = o.contenuDeSeance ? { homeworkId: o.contenuDeSeance.idDevoir, content: new classes_1.ExpandedBase64(o.contenuDeSeance.contenu), documents: o.contenuDeSeance.documents, } : undefined; this._raw = o; } } exports.Assignement = Assignement; async function tickAssignement(id, token, assignement, state) { 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, }); return body; } exports.tickAssignement = tickAssignement;