Rev 41 | Rev 284 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phpclass OdsIndividu extends JRestService {const PREFIXE = 'get';/*** Méthode appelée avec une requête de type GET.**/function getElement($param = array()) {$type = $param[0];if ($type == '*' || is_numeric($type)) {$info = $this->getElementParDefaut($param);} else {$methode = self::PREFIXE.$type;if (method_exists($this, $methode)) {array_shift($param);$info = $this->$methode($param);} else {$this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";}}// Envoi sur la sortie standard$this->envoyer($info);}/*** Méthode appelée pour ajouter un élément.*/public function createElement($params) {$elements_requis = array('id_participant','id_espece','id_station','individu_nom');foreach($elements_requis as $requis) {if(!isset($params[$requis])) {//$erreurs[$requis] = 'erreur ';}}if(!empty($erreurs)) {$this->envoyer($erreurs);}$id_participant = $params['id_participant'];$requete_creation_individu = 'INSERT INTO ods_individus '.'(oi_ce_espece, oi_ce_station, oi_nom) '.'VALUES ('.$this->proteger($params['id_espece']).','.$this->proteger($params['id_station']).','.$this->proteger($params['individu_nom']).')';$creation_individu = $this->executerRequeteSimple($requete_creation_individu);if(!$creation_individu) {$retour['erreurs'] = 'erreur d\'insertion';} else {$retour['id_nouvel_individu'] = $this->renvoyerDernierIdInsere();}$this->envoyer($retour);}/*** Méthode appelée pour mettre à jour un élément*/public function updateElement($uid, $params) {//Mise à jour de la personne// Identification de l'utilisateurlist($id_utilisateur, $id_session) = $this->getIdentification($params);// Contrôle du non détournement de l'utilisateurif ($this->etreAutorise($id_utilisateur)) {try {} catch (PDOException $e) {$messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);}}$this->envoyer();}/*** Méthode appelée pour supprimer un élément*/public function deleteElement($uid) {// Vérification de la présence des id passés par l'urlif (!isset($uid[0]) || !isset($uid[1])) {$this->messages[] = "Identifiant d'utilisateur ou de personne manquant. Vous ne devriez pas avoir accès à ce service.";} else {list($id_utilisateur, $id_session) = $this->getIdentification($uid[0]);// Contrôle du non détournement de l'utilisateurif ($this->etreAutorise($id_utilisateur)) {// Récupération des id passés par l'url$identifiants = explode(',', rtrim($uid[1], ','));if (count($identifiants) == 0) {$this->messages[] = "Aucun enregistrement n'a été supprimé.";} else {foreach ($identifiants as $id_personne) {try {} catch (PDOException $e) {$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);}}}}}// Envoie sur la sortie standard$this->envoyer();}private function getElementParDefaut($params) {return $this->getInformationsIndividu($params);}private function getInformationsIndividu($params) {$id_individu = $params[0];$requete_informations_individu = 'SELECT * FROM ods_individus '.'WHERE oi_id_individu = '.$this->proteger($id_individu);$informations_individu = $this->executerRequete($requete_informations_individu);if(!empty($informations_individu)) {$informations_individu_formatees = $this->formaterTableauIndividuPourEnvoi($informations_individu[0]);}return $informations_individu_formatees;}private function getIndividusPourStation($params) {$id_station = $params[0];$requete_individus_station = 'SELECT * FROM ods_individus '.'WHERE oi_ce_station = '.$this->proteger($id_station);$liste_individus_pour_station = $this->executerRequete($requete_individus_station);foreach($liste_individus_pour_station as &$individu_pour_station) {$individu_pour_station = $this->formaterTableauIndividuPourEnvoi($individu_pour_station);}return $liste_individus_pour_station;}private function getIndividusPourStationPourEspece($params) {$id_station = $params[0];$id_espece = $params[1];$requete_individus_station_espece = 'SELECT * FROM ods_individus '.'WHERE oi_ce_station = '.$this->proteger($id_station).' '.'AND oi_ce_espece ='.$this->proteger($id_espece);$liste_individus_pour_station_pour_espece = $this->executerRequete($requete_individus_station_espece);foreach($liste_individus_pour_station_pour_espece as &$individu_pour_station_pour_espece) {$individu_pour_station_pour_espece = $this->formaterTableauIndividuPourEnvoi($individu_pour_station_pour_espece);}return $liste_individus_pour_station_pour_espece;}private function formaterTableauIndividuPourEnvoi($individu) {return array('id_individu' => $individu['oi_id_individu'],'id_espece' => $individu['oi_ce_espece'],'id_station' => $individu['oi_ce_station'],'nom' => $individu['oi_nom']);}}?>