Subversion Repositories Sites.obs-saisons.fr

Compare Revisions

Ignore whitespace Rev 323 → Rev 324

/trunk/applications/jrest/services/OdsIndividu.php
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'],
);
 
}
}
?>
?>