UNPKG

ecoledirecte.js

Version:

Good-looking client for EcoleDirecte's private API.

56 lines (55 loc) 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Teacher = void 0; const Account_1 = require("./Account"); const v3_1 = require("ecoledirecte-api-types/v3"); const util_1 = require("../util"); const classes_1 = require("../classes"); class Teacher extends Account_1.Account { constructor(session) { super(session); this.session = session; this.type = "teacher"; const mainAccount = (0, util_1.getMainAccount)(session.loginRes.data.accounts); if (!(0, v3_1.isTeacherAccount)(mainAccount)) throw new Error("Teacher class's main account is wrong"); if (!session.token) throw new Error("Account class MUST have token"); this.account = mainAccount; this.token = session.token; } // Get schools async getSchools() { // Get schools const res = await (0, util_1.getTeachersSchools)(this.token); this.token = res.token; const schools = res.data.etablissements.map(e => new classes_1.TeachersSchool(e)); return [schools, res]; } // Get students (from class id) async getStudents(classId) { const res = await (0, util_1.getTeachersStudents)(this.token, classId); this.token = res.token; const students = res.data.eleves.map(e => new classes_1.TeachersStudent(e)); return [students, res]; } async getPhoto() { const r = await (0, util_1.fetchPhoto)(this); if (!r) return; const [buf, str] = r; this._photo = buf; this._photoUri = str; return buf; } get photo() { return { buffer: this._photo, uri: this._photoUri, }; } get _raw() { return this.account; } } exports.Teacher = Teacher;