API de la BdU du SdE
 Tout Classes Fonctions Variables Pages
Utilisation de l'api
Avertissement
Toutes les interactions avec l'api se font en passant par les méthodes des classes Bdu_Api et Bdu_Configuration.

Initialisation

La configuration doit être initialisée dans un fichier qui sera inclus dans toutes les pages utilisant l'api.

<?php
// Enregistrement de l'autoloader
require_once dirname(__FILE__).'/bdu-api/lib/autoload.php';
// Récupération de l'API
// Renseignement des identifiants.
// Cela doit être fait avant de pouvoir utiliser les autres méthodes del'api.
$config->setCredentials('11goreti', Bdu_Configuration::TYPE_PEOPLE, '1234poney');
// Règlage de l'encodage.
// La valeur par défaut est UTF-8 quand cette méthode n'est pas utilisée
$config->setCharset('UTF-8');
// Ajout d'un logueur (utile pendant le développement pour débuguer)
// Le premier argument est le chemin absolu vers le fichier de log.
// Le second argument (optionnel) est le niveau à partir duquel les messages
// sont logués. C'est une des constantes de la classe Bdu_Log_AbstractLogger et
// la valeur par défaut est Bdu_Log_AbstractLogger::ERR
$logger = new Bdu_Log_FileLogger(dirname(__FILE__).'/bdu.log', Bdu_Log_AbstractLogger::DEBUG);
$config->setLogger($logger);

La suite de la documentation supposera que ce fichier est inclus dans toutes les pages et ne montrera plus cette étape.

Recherche d'un étudiant

Vérification d'un login

L'api permet de vérifier si un login SdE existe.

<?php
// $valid est un booléen
$valid = $api->isValidLogin('11goreti');

Recherche par nom, surnom ou chambre

La recherche par login se fait grâce à Bdu_Api::searchStudentByLogin() et renvoie un objet représentant un étudiant.

<?php
// $student est un objet de type Bdu_Entity_Student si le login existe
// $student vaut null si le login est invalide
$student = $api->searchStudentByLogin('11goreti');
// $student est un objet de type Bdu_Entity_Student si le login existe
// une exception est levée si le login est invalide
$student = $api->searchStudentByLogin('11goreti', false);
$name = $student->getProperty('cn');

Recherche par nom, surnom ou chambre

Les autres fonctions de recherche renvoient un tableau de résultats.

<?php
// $student est un tableau d'objets de type Bdu_Entity_Student
$students = $api->searchStudentsByName('Gorêt', 'Ignace');
$students = $api->searchStudentsByNick('Foobar');
$students = $api->searchStudentsByRoom('C322');

Recherche d'une association

L'api permet aussi de rechercher les informations sur les associations.

<?php
// $associations est un tableau d'objets de type Bdu_Entity_Association
$associations = $api->searchAssociationsByName('SdE');
// $associations est un objet Bdu_Entity_Association
$association = $api->searchAssociationById(42);

Appartenance aux associations

Recherche par étudiant

L'api permet de rechercher les mandats d'un étudiant:

<?php
$student = $api->searchStudentByLogin('11goreti');
// Les mandats sont retournés sous la forme d'un tableau d'objets Bdu_Entity_Mandate
$mandates = $student->getCurrentMandates();
$mandates = $student->getAllMandates();
foreach ($mandates as $mandate){
echo $mandate->getStartDate()->format('d/m/Y');
// Un mandat est associé à une fonction dans l'association
$position = $mandate->getPosition();
echo $position->getName();
echo $position->getDescription();
$asso = $position->getAssociation();
}
// Vous pouvez aussi accéder aux associations dont l'étudiant est membre.
// Cela renvoie un tableau d'objets Bdu_Entity_Association
$associations = $student->getCurrentAssociations();
$associations = $student->getAllAssociations();

Recherche par association

L'api permet de rechercher les membres d'une association:

<?php
$association = $api->searchAssociationById(147);
// Les mandats sont retournés sous la forme d'un tableau d'objets Bdu_Entity_Mandate
$mandates = $association->getCurrentMandates();
$mandates = $association->getAllMandates();
foreach ($mandates as $mandate){
echo $mandate->getStartDate()->format('d/m/Y');
$student = $mandate->getStudent();
// Un mandat est associé à une fonction dans l'association
$position = $mandate->getPosition();
echo $position->getName();
echo $position->getDescription();
}
// Vous pouvez aussi accéder aux membres de l'association.
// Cela renvoie un tableau d'objets Bdu_Entity_Student
$students = $association->getCurrentStudents(); // memebres actuels
$students = $association->getAllStudents(); // tous les membres (anciens et actuels)

Récupération des photos

L'api permet de récupérer les photos SdE des étudiants. Ceci est possible de deux manières (totalement équivalentes):

Note
Si l'étudiant n'a pas de photo SdE une silhouette sera affichée (la même que sur le SdE).