ecoledirecte.js
Version:
Good-looking client for EcoleDirecte's private API.
56 lines (55 loc) • 1.83 kB
JavaScript
;
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;