3,15 → 3,15 |
class 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 { |
23,83 → 23,99 |
$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'); |
|
|
$elements_requis = array('id_participant','id_espece','id_station','individu_nom'); |
|
foreach($elements_requis as $requis) { |
if(!isset($params[$requis])) { |
//TODO: pourquoi est-ce que c'est commenté ça ? |
//$erreurs[$requis] = 'erreur '; |
} |
} |
|
|
if(!empty($erreurs)) { |
$this->envoyer($erreurs); |
} |
|
|
// commentaire optionnel |
$commentaire = !empty($params['individu_commentaire']) ? $params['individu_commentaire'] : ''; |
// limité à 1000 caractères (pas besoin de renvoyer une erreur ici car c'est un cas très peu fréquent) |
$commentaire = substr($commentaire, 0, 1000); |
|
$requete_creation_individu = 'INSERT INTO ods_individus '. |
'(oi_ce_espece, oi_ce_station, oi_nom) '. |
'(oi_ce_espece, oi_ce_station, oi_nom, oi_commentaire) '. |
'VALUES ('. |
$this->proteger($params['id_espece']).','. |
$this->proteger($params['id_station']).','. |
$this->proteger($params['individu_nom']).')'; |
$creation_individu = $this->executerRequeteSimple($requete_creation_individu); |
|
|
$this->proteger($params['id_station']).','. |
$this->proteger($params['individu_nom']).','. |
$this->proteger($commentaire).')'; |
$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) { |
|
if(isset($uid[0])) { |
|
if(isset($uid[0])) { |
$id_individu = $uid[0]; |
} else { |
return; |
} |
|
$requete_modification_individu = 'UPDATE ods_individus '. |
'SET oi_nom = '.$this->proteger($params['individu_nom']).' '. |
'WHERE oi_id_individu = '.$this->proteger($id_individu); |
|
$modification_individu = $this->executerRequeteSimple($requete_modification_individu); |
|
$this->envoyer(); |
|
// commentaire optionnel |
$commentaire = !empty($params['individu_commentaire']) ? $params['individu_commentaire'] : ''; |
// limité à 1000 caractères (pas besoin de renvoyer une erreur ici car c'est un cas très peu fréquent) |
$commentaire = substr($commentaire, 0, 1000); |
|
$requete_modification_individu = 'UPDATE ods_individus '. |
'SET oi_nom = '.$this->proteger($params['individu_nom']).' '; |
|
// mise à jour éventuelle du commentaire optionnel |
if(!empty($params['individu_commentaire'])) { |
$requete_modification_individu .= ', oi_commentaire = '.$this->proteger($params['individu_commentaire']).' '; |
} |
$requete_modification_individu .= 'WHERE oi_id_individu = '.$this->proteger($id_individu); |
$modification_individu = $this->executerRequeteSimple($requete_modification_individu); |
|
$this->envoyer(); |
} |
|
|
/** |
* Méthode appelée pour supprimer un élément |
*/ |
public function deleteElement($uid) { |
|
|
if(isset($uid[0])) { |
$id_participant = $uid[0]; |
} else { |
return; |
} |
|
|
if(isset($uid[1])) { |
$id_individu = $uid[1]; |
} else { |
return; |
} |
|
|
$requete_suppression_individu = 'DELETE FROM ods_individus '. |
'WHERE oi_id_individu = '.$this->proteger($id_individu).' '. |
'AND oi_ce_station IN '. |
106,85 → 122,86 |
'(SELECT os_id_station FROM ods_stations '. |
'WHERE os_ce_participant = '.$this->proteger($id_participant).' '. |
')'; |
|
|
$suppression_individu = $this->executerRequeteSimple($requete_suppression_individu); |
|
|
if(!$suppression_individu) { |
// TODO: comment gère t'on les erreurs ? |
} |
|
|
// 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 '. |
$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 oi.* FROM ods_individus oi '. |
|
$requete_individus_station = 'SELECT oi.* FROM ods_individus oi '. |
'INNER JOIN ods_especes oe '. |
'ON oi.oi_ce_espece = oe.oe_id_espece '. |
'AND oe.oe_espece_active = 1 '. |
'AND oe.oe_espece_active = 1 '. |
'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); |
|
$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 '. |
|
$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); |
|
$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( |
|
return array( |
'id_individu' => $individu['oi_id_individu'], |
'id_espece' => $individu['oi_ce_espece'], |
'id_station' => $individu['oi_ce_station'], |
'nom' => $individu['oi_nom'] |
); |
|
'id_espece' => $individu['oi_ce_espece'], |
'id_station' => $individu['oi_ce_station'], |
'nom' => $individu['oi_nom'], |
'commentaire' => $individu['oi_commentaire'], |
); |
|
} |
} |
?> |
?> |