Skip to content

maelgangloff/univ-lorraine-api

Repository files navigation

Classes

Utilisateur

Support non officiel des API de l'Université de Lorraine

Un exemple d'implémentation est disponible sur maelgangloff/bot-u2l

La classe Utilisateur contient les informations d'authentification d'un étudiant ou d'un personnel de l'Université de Lorraine. Elle permet de récupérer un ticket auprès du serveur d'authentification CAS pour s'authentifier auprès de serveurs tiers (mULti, Annuaire, ...).

Annuaire

L'annuaire web de l'Université de Lorraine permet de se renseigner sur un personnel (adresse mail, affectation, ...)

Multi

Le mULti centralise plusieurs ressouces:

  • Emploi du temps
  • Taux d'occupation des BU
  • Menu des Restos U'
  • FactUeL

Functions

decryptData(s)string | null

Fonction permettant de "décoder" certaines données de l'annuaire: adresse mail et numéro de téléphone

Utilisateur

Support non officiel des API de l'Université de Lorraine

Un exemple d'implémentation est disponible sur maelgangloff/bot-u2l

La classe Utilisateur contient les informations d'authentification d'un étudiant ou d'un personnel de l'Université de Lorraine. Elle permet de récupérer un ticket auprès du serveur d'authentification CAS pour s'authentifier auprès de serveurs tiers (mULti, Annuaire, ...).

Kind: global class

utilisateur.getTicket(service) ⇒ Promise.<string>

Générer un ticket d'authentification à faire utiliser par un service

Kind: instance method of Utilisateur
Returns: Promise.<string> - Le ticket à utiliser auprès du service

Param Type Description
service Service | string L'URL de redirection à utiliser pour transmettre le ticket au service

Example

const { Utilisateur, Service } = require('univ-lorraine-api')

const user = new Utilisateur('identifiantUL', 'motdepasseUL')
user.getTicket(Service.MULTI).then(ticket => {
 console.log('Ticket à faire consommer par le service MULTI: ' + ticket)
})

Utilisateur.serviceValidate(service, ticket) ⇒ Promise.<AuthenticationSuccess>

Récupérer les informations de l'utilisateur du CAS. L'opération nécessite un ticket.

Kind: static method of Utilisateur
Returns: Promise.<AuthenticationSuccess> - Informations de l'utilisateur

Param Type Description
service Service | string L'URL de connexion du service (utilisé comme un identifiant)
ticket string Le ticket adressé au service

Example

const { Utilisateur, Service } = require('univ-lorraine-api')

const user = new Utilisateur('identifiantUL', 'motdepasseUL')
user.getTicket(Service.MULTI).then(async ticket => {
 const infos = await Utilisateur.serviceValidate(Service.MULTI, ticket)
 console.log(`Vous êtes bien authentifié en tant que ${infos['cas:attributes']['cas:displayname']} <${infos['cas:attributes']['cas:mail']}>.`)
})

Annuaire

L'annuaire web de l'Université de Lorraine permet de se renseigner sur un personnel (adresse mail, affectation, ...)

Kind: global class

Annuaire.getLdapSearch(valeur, filtervalue, withvac) ⇒ Promise.<AnnuaireResponse>

Rechercher une personne travaillant dans l'Annuaire

Kind: static method of Annuaire
Returns: Promise.<AnnuaireResponse> - Le résultat de la recherche

Param Type Default Description
valeur string Nom/Prénom/Téléphone
filtervalue string null Filtrer par identifiant d'un service ou d'une composante
withvac boolean Rechercher dans les vacataires ou non

Example

const { Annuaire, decryptData } = require('univ-lorraine-api')

Annuaire.getLdapSearch('Durand', null, false).then(reponse => {
 for(const personne of reponse.items) {
   console.log(`${personne.displayName} <${decryptData(personne.mail)}>`)
 }
})

Annuaire.getPhoto(valeur) ⇒ Promise.<PhotoResponse>

Il est possible d'accéder à la photo des personnels ayant donné leur accord pour qu'elle soit publique. La photo est encodée en base64.

Kind: static method of Annuaire
Returns: Promise.<PhotoResponse> - La réponse contenant la photo en base64

Param Type Description
valeur string Identifiant d'un personnel

Annuaire.getAffectations(valeur, principale) ⇒ Promise.<AnnuaireResponse>

Obtenir les détails des affectations d'un personnel

Kind: static method of Annuaire
Returns: Promise.<AnnuaireResponse> - Les affectations du personnel

Param Type Description
valeur string Les identifiants des secteurs d'affectation
principale string L'affectation principale du personnel

Annuaire.getActivite(valeur) ⇒ Promise.<AnnuaireResponse>

Activité principale de la personne

Kind: static method of Annuaire
Returns: Promise.<AnnuaireResponse> - L'activité principale du personnel

Param Type Description
valeur string Identifiant d'un personnel

Annuaire.getFonctions(valeur) ⇒ Promise.<AnnuaireResponse>

Les fonctions du personnel au sein de l'Université (Directeur de la composante, ...)

Kind: static method of Annuaire
Returns: Promise.<AnnuaireResponse> - Les fonctions du personnel au sein de l'UL

Param Type Description
valeur string Identifiant d'un personnel

Annuaire.getStructuresRacine()

Liste les Services & Composantes de l'Université de Lorraine (Présidence, Formation, Recherche et Ecoles doctorales)

Kind: static method of Annuaire

Annuaire.getDomainesFonction() ⇒ Promise.<AnnuaireResponse>

Liste les fonctions au sein de l'UL

Kind: static method of Annuaire
Returns: Promise.<AnnuaireResponse> - Les fonctions

Annuaire.getPersonnelsFonction(valeur) ⇒ Promise.<AnnuaireResponse>

Obtenir les personnels liés à une fonction particulière

Kind: static method of Annuaire
Returns: Promise.<AnnuaireResponse> - Les personnels attachés à cette fonction

Param Type Description
valeur string Identifiant de la fonction

Annuaire.getPersonne(valeur) ⇒ Promise.<AnnuaireResponse>

Rechercher une personne à partir de son identifiant

Kind: static method of Annuaire
Returns: Promise.<AnnuaireResponse> - Un personnel (vacataire)

Param Type Description
valeur string Identifiant d'un personnel

Annuaire.getVacataires(valeur) ⇒ Promise.<AnnuaireResponse>

Lister tous les vacataires d'une structure

Kind: static method of Annuaire
Returns: Promise.<AnnuaireResponse> - Les vacataires attachés à la structure

Param Type Description
valeur string Identifiant de la structure (supannCodeEntite)

Annuaire.getPersonnelsStructure(valeur) ⇒ Promise.<AnnuaireResponse>

Lister tous les personnels non vacataires d'une structure

Kind: static method of Annuaire
Returns: Promise.<AnnuaireResponse> - Les personnels attachés à la structure

Param Type Description
valeur string Identifiant de la structure (supannCodeEntite)

Annuaire.getPersonnelsStructuresFilles(valeur) ⇒ Promise.<AnnuaireResponse>

Lister tous les personnels non vacataires des structures filles d'une entité

Kind: static method of Annuaire
Returns: Promise.<AnnuaireResponse> - Les personnels attachés aux structures filles d'une entité

Param Type Description
valeur string Identifiant de la structure (supannCodeEntite)

Annuaire.getVacatairesStructuresFilles(valeur) ⇒ Promise.<AnnuaireResponse>

Lister tous les vacataires des structures filles d'une entité

Kind: static method of Annuaire
Returns: Promise.<AnnuaireResponse> - Les vacataires attachés aux structures filles d'une entité

Param Type Description
valeur string Identifiant de la structure (supannCodeEntite)

Multi

Le mULti centralise plusieurs ressouces:

  • Emploi du temps
  • Taux d'occupation des BU
  • Menu des Restos U'
  • FactUeL

Kind: global class

multi.getTimetable(uid, from, to) ⇒ Timetable

Emploi du temps d'une personne de l'Université de Lorraine

Kind: instance method of Multi
Returns: Timetable - L'emploi du temps de l'utilisateur sur la période

Param Type Description
uid string Identifiant CAS d'un utilisateur
from Date Date de début
to Date Date de fin

Example

const { Utilisateur, Multi } = require('univ-lorraine-api')

Multi.login(new Utilisateur('identifiantUL', 'motdepasseUL')).then(async auth => {
 const user = new Multi(auth)

 const timetable = await user.getTimetable('identifiantUL', new Date('2023-03-01'), new Date('2023-03-31'))
 for(const planning of timetable.plannings) {
   console.log('Planning : ' + planning.label)
 }
})

Multi.getAffluenceBU(buToken) ⇒ Promise.<AffluenceBU>

Affluence d'une BU (Bibliothèque Universitaire)

Kind: static method of Multi
Returns: Promise.<AffluenceBU> - Les données brutes concernant l'occupation du lieu

Param Type Description
buToken BU | string Identifiant de la bibliothèque universitaire

Multi.getCROUSmenu() ⇒ Promise.<MenuCROUS>

Les menus de tous les restaurants universitaires

Kind: static method of Multi
Returns: Promise.<MenuCROUS> - Les menus des Restos U' de Nancy

Multi.login(utilisateur) ⇒ Array.<string>

Récupérer deux jetons JWT permettant de s'authentifier auprès de l'API du Multi Le premier JWT est le jeton d'authentification. Le deuxième est un refresh token permettant de générer un nouveau token d'authentification.

Kind: static method of Multi
Returns: Array.<string> - Les deux jetons JWT

Param Description
utilisateur Un utilisateur de l'UL

decryptData(s) ⇒ string | null

Fonction permettant de "décoder" certaines données de l'annuaire: adresse mail et numéro de téléphone

Kind: global function
Returns: string | null - Les données "décodées"

Param Type Description
s string Les données à "décoder"