summaryrefslogtreecommitdiff
path: root/alarm/node_modules/pronote-api/src/fetch/pronote/user.js
diff options
context:
space:
mode:
Diffstat (limited to 'alarm/node_modules/pronote-api/src/fetch/pronote/user.js')
-rw-r--r--alarm/node_modules/pronote-api/src/fetch/pronote/user.js183
1 files changed, 0 insertions, 183 deletions
diff --git a/alarm/node_modules/pronote-api/src/fetch/pronote/user.js b/alarm/node_modules/pronote-api/src/fetch/pronote/user.js
deleted file mode 100644
index 54f62be..0000000
--- a/alarm/node_modules/pronote-api/src/fetch/pronote/user.js
+++ /dev/null
@@ -1,183 +0,0 @@
-const request = require('../../request');
-
-const parse = require('../../data/types');
-const { getFileURL } = require('../../data/files');
-const { fromPronote } = require('../../data/objects');
-
-async function getUser(session)
-{
- const { donnees: user } = await request(session, 'ParametresUtilisateur');
- const { data, authorizations } = getSpecificData(session, user);
-
- const res = user.ressource;
- const aut = user.autorisations;
-
- return {
- ...fromPronote(res),
- ...data,
- establishmentsInfo: parse(user.listeInformationsEtablissements, ({ Logo, Coordonnees }) => ({
- logoID: parse(Logo),
- address: [Coordonnees.Adresse1, Coordonnees.Adresse2],
- postalCode: Coordonnees.CodePostal,
- postalLabel: Coordonnees.LibellePostal,
- city: Coordonnees.LibelleVille,
- province: Coordonnees.Province,
- country: Coordonnees.Pays,
- website: Coordonnees.SiteInternet
- })),
- userSettings: (({ version, EDT, theme, Communication }) => ({
- version,
- timetable: {
- displayCanceledLessons: EDT.afficherCoursAnnules,
- invertAxis: EDT.axeInverseEDT,
- invertWeeklyPlanAxis: EDT.axeInversePlanningHebdo,
- invertDayPlanAxis: EDT.axeInversePlanningJour,
- invertDay2PlanAxis: EDT.axeInversePlanningJour2,
- dayCount: EDT.nbJours,
- resourceCount: EDT.nbRessources,
- daysInTimetable: EDT.nbJoursEDT,
- sequenceCount: EDT.nbSequences
- },
- theme: theme.theme,
- unreadDiscussions: Communication.DiscussionNonLues
- }))(user.parametresUtilisateur),
- sessionAuthorizations: {
- twitterManagement: user.autorisationsSession.fonctionnalites.gestionTwitter,
- expandedAttestation: user.autorisationsSession.fonctionnalites.attestationEtendue
- },
- authorizations: {
- discussions: aut.AvecDiscussion,
- teachersDiscussions: aut.AvecDiscussionProfesseurs,
- timetableVisibleWeeks: parse(aut.cours.domaineConsultationEDT),
- canEditLessons: parse(aut.cours.domaineModificationCours),
- hideClassParts: aut.cours.masquerPartiesDeClasse,
- maxEstablishmentFileSize: aut.tailleMaxDocJointEtablissement,
- editPassword: aut.compte.avecSaisieMotDePasse,
- editPersonalInfo: aut.compte.avecInformationsPersonnelles,
- canPrint: aut.autoriserImpression,
- ...authorizations
- },
- minPasswordSize: user.reglesSaisieMDP.min,
- maxPasswordSize: user.reglesSaisieMDP.max,
- passwordRules: parse(user.reglesSaisieMDP.regles),
- kioskAccess: user.autorisationKiosque,
- tabs: user.listeOnglets.map(parseTab),
- hiddenTabs: user.listeOngletsInvisibles,
- notifiedTabs: user.listeOngletsNotification
- };
-}
-
-function parseTab({ G: id, Onglet: subs })
-{
- return { id, subs: (subs || []).map(parseTab) };
-}
-
-function getSpecificData(session, data)
-{
- switch (session.type.name)
- {
- case 'student':
- return getStudentData(session, data);
- case 'parent':
- return getParentData(session, data);
- case 'teacher':
-
- break;
- case 'administration':
-
- break;
- default:
- return {};
- }
-}
-
-function getStudentData(session, data)
-{
- return {
- data: getStudent(session, data.ressource),
- authorizations: {
- maxUserWorkFileSize: data.autorisations.tailleMaxRenduTafEleve
- }
- };
-}
-
-function getStudent(session, res)
-{
- const avatar = {};
- if (res.avecPhoto) {
- avatar.avatar = getFileURL(session, {
- id: res.N,
- name: 'photo.jpg'
- });
- }
-
- return {
- ...fromPronote(res),
- establishment: parse(res.Etablissement),
- ...avatar,
- studentClass: fromPronote(res.classeDEleve),
- classHistory: parse(res.listeClassesHistoriques, ({ AvecNote, AvecFiliere }) => ({
- hadMarks: AvecNote,
- hadOptions: AvecFiliere
- })),
- groups: parse(res.listeGroupes),
- tabsPillars: parse(res.listeOngletsPourPiliers, ({ listePaliers }) => ({
- levels: parse(listePaliers, ({ listePiliers }) => ({
- pillars: parse(listePiliers, ({ estPilierLVE, estSocleCommun, Service }) => ({
- isForeignLanguage: estPilierLVE,
- isCoreSkill: estSocleCommun,
- subject: Service && parse(Service)
- }))
- }))
- }), 'tab'),
- tabsPeriods: parse(res.listeOngletsPourPeriodes, ({ listePeriodes, periodeParDefaut }) => ({
- periods: parse(listePeriodes, ({ GenreNotation }) => ({
- isCorePeriod: GenreNotation === 1
- })),
- defaultPeriod: parse(periodeParDefaut)
- }), 'tab')
- };
-}
-
-function getParentData(session, data)
-{
- const res = data.ressource;
- const aut = data.autorisations;
-
- return {
- data: {
- isDelegate: res.estDelegue,
- isBDMember: res.estMembreCA,
- canDiscussWithManagers: res.avecDiscussionResponsables,
- absencesReasons: parse(data.listeMotifsAbsences),
- delaysReasons: parse(data.listeMotifsRetards),
- classDelegates: parse(res.listeClassesDelegue),
- students: res.listeRessources.map(r => fromPronote(r, ({ listeSessions }) => ({
- ...getStudent(session, r),
- sessions: parse(listeSessions, ({ date, strHeureDebut, strHeureFin }) => ({
- from: getDateWithHours(parse(date), strHeureDebut),
- to: getDateWithHours(parse(date), strHeureFin)
- }))
- })))
- },
- authorizations: {
- staffDiscussion: aut.AvecDiscussionPersonnels,
- parentsDiscussion: aut.AvecDiscussionParents,
- editStudentPassword: aut.compte.avecSaisieMotDePasseEleve,
- editCoordinates: aut.compte.avecSaisieInfosPersoCoordonnees,
- editAuthorizations: aut.compte.avecSaisieInfosPersoAutorisations
- }
- };
-}
-
-function getDateWithHours(date, hours)
-{
- const h = hours.indexOf('h');
-
- date.setHours(date.getHours() + ~~hours.substring(0, h));
- date.setMinutes(date.getMinutes() + ~~hours.substring(h));
-
- return date;
-}
-
-module.exports = getUser;