Rev 33 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
class OdsEspece 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) {
// Identification de l'utilisateur
list($id_utilisateur, $id_session) = $this->getIdentification($params);
// Contrôle du non détournement de l'utilisateur
if ($this->etreAutorise($id_utilisateur)) {
try {
} catch (PDOException $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
}
}
$this->envoyer((string) $id_personne);
}
/**
* Méthode appelée pour mettre à jour un élément
*/
public function updateElement($uid, $params) {
//Mise à jour de la personne
// Identification de l'utilisateur
list($id_utilisateur, $id_session) = $this->getIdentification($params);
// Contrôle du non détournement de l'utilisateur
if ($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'url
if (!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'utilisateur
if ($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();
}
/** ======================= Methodes privées d'accès au informations ================================ */
private function getElementParDefaut() {
return $this->getEspeces();
}
private function getEspeces() {
return array(
'1' => array(
'id' => '1',
'nom_vernaculaire' => 'Erable de Montpellier'
),
'2' => array(
'id' => '2',
'nom_vernaculaire' => 'Herbe à canard'
),
'3' => array(
'id' => '3',
'nom_vernaculaire' => 'Coquelicot'
),
'4' => array(
'id' => '4',
'nom_vernaculaire' => 'Herbe à chat'
),
'5' => array(
'id' => '5',
'nom_vernaculaire' => 'Hibou'
),
'6' => array(
'id' => '6',
'nom_vernaculaire' => 'Coucou'
)
);
}
private function getEspece($params) {
$id_espece = $params[0];
$infos_espece = array(
'id' => $id_espece,
'nom_scientifique' => 'Acer monspessulanum',
'nom_vernaculaire' => 'Erable de Montpellier',
'description' => 'Un arbre bien connu de tous',
'url_image' => 'http://www.tela-botanica.org/sites/eflore/generique/images/projets/eflore/bdnff/4.02/nt/8523/002543.jpg'
);
return $infos_espece;
}
private function getEspecesPourStation($params) {
$id_station = $params[0];
$especes_dans_station = $this->getEspeces();
$modulo = ($id_station+7)%6;
if($modulo == 0) $modulo = 1;
return array_slice($especes_dans_station, 0, $modulo);
}
private function getEspecesParType($params) {
$id_type = $params[0];
return $especes_par_type = array(
'1' => array(
'nom' => 'herbacées',
'especes' => array(
'1' => array('id' => '1',
'nom_vernaculaire' => 'Herbe de Montpellier'
)
)
),
'2' => array(
'nom' => 'arbres',
'especes' => array(
'id' => array('id' => '1',
'nom_vernaculaire' => 'Erable de Montpellier'
)
)
),
'3' => array(
'nom' => 'animaux',
'especes' => array(
'id' => array('id' => '1',
'nom_vernaculaire' => 'Hibou de Montpellier'
)
)
)
);
return $especes_par_type;
}
}
?>