* @copyright 2010 Tela-Botanica * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL * @version SVN: * @link /doc/jrest/ */ /** * InventoryObservationList.php * * in=utf8 * out=utf8 * * Cas d'utilisation : * 1: Service recherche d'observations a partir de divers critères * a: Le service recherche les observations correspondant aux critères demandés * b: Le service renvoie la liste des observations correspondantes * * 2: Service modification en masse d'observations * a: Le service recherche les observations correspondant aux identifiants donnés * b: Le service modifie les observations correspondantes avec les infos données en paramètres * * 3: Service de suppression d'observations en masse * a: Le service recherche les observations correspondant aux critères demandés * b: Le service supprime la liste des observations correspondantes */ class InventoryObservationList extends Cel { /** * renvoie les observations correspondant au critères de filtrage * * uid[0] : utilisateur obligatoire * uid[1] : criteres de filtrage de la forme critere1=valeur1&critere2=valeur2 */ function getElement($uid) { // Controle detournement utilisateur $this->controleUtilisateur($uid[0]); $chercheur_observations = new RechercheObservation($this->config); $numero_page = 0; $taille_page = 50; $criteres = array(); $criteres = $_GET ; if (isset($criteres['numero_page']) && isset($criteres['limite'])) { $numero_page = $criteres['numero_page']; unset($criteres['numero_page']); $taille_page = $criteres['limite']; unset($criteres['limite']); } $debut = $taille_page*$numero_page ; $retour = $chercheur_observations->rechercherObservations($uid[0], $criteres, $debut, $taille_page); $retour_formate = $chercheur_observations->formaterPourEnvoiCel(&$retour); $this->envoyerJson($retour_formate); return true; } /** * met à jour les métadonnées d'une liste d'observations * * uid[0] : utilisateur obligatoire * uid[1] : ordres des observations à modifier séparés par des virgules * pairs : données à mettre à jour sous la forme de clés => valeurs */ function updateElement($uid,$pairs) { // Controle detournement utilisateur $this->controleUtilisateur($uid[0]); if (!isset($uid[1])) { //TODO: envoyer un message d'erreur return; } $uid[1] = rtrim($uid[1],','); $gestionnaire_observation = new GestionObservation($this->config); $modification_observation = $gestionnaire_observation->modifierObservation($uid[0],$uid[1],$pairs); return true; } /** * Supprime une liste d'observations * * uid[0] : utilisateur obligatoire * uid[1] : ordres des observations à supprimer séparés par des virgules */ function deleteElement($uid) { // Controle detournement utilisateur $this->controleUtilisateur($uid[0]); if (!isset($uid[1])) { //TODO: envoyer un message d'erreur return; } $uid[1] = rtrim($uid[1],','); $gestionnaire_observation = new GestionObservation($this->config); $modification_observation = $gestionnaire_observation->supprimerObservation($uid[0],$uid[1]); if ($modification_observation) { echo "OK"; } exit() ; } } ?>