Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1793 → Rev 1795

/trunk/services/modules/0.1/Commentaires.php
1,10 → 1,8
<?php
// declare(encoding='UTF-8');
/**
* Classe principale de chargement des services concernant les commentaires.
* Classe principale de chargement des sous-services concernant les commentaires.
*
* Encodage en entrée : utf8
* Encodage en sortie : utf8
*
* URLs possibles :
*
* GET :
17,16 → 15,16
* DELETE :
* http://localhost/del/services/0.1/commentaires/#id => supprime le commentaire d'id #id
*
* @category DEL
* @package Services
* @category DEL
* @package Services
* @subpackage Commentaires
* @version 0.1
* @author Mathias CHOUET <mathias@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Aurelien PERONNET <aurelien@tela-botanica.org>
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org>
* @version 0.1
* @author Mathias CHOUET <mathias@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Aurelien PERONNET <aurelien@tela-botanica.org>
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org>
*/
class Commentaires extends RestService {
 
36,6 → 34,7
private $serviceNom = 'commentaires';
private $sousServiceNom = null;
private $cheminCourant = null;
private $erreur = null;
 
private $conteneur;
 
70,7 → 69,6
}
 
private function executerService() {
$resultat = '';
$reponseHttp = new ReponseHttp();
try {
$this->conteneur = new Conteneur($this->parametres);
85,17 → 83,11
}
 
private function traiterRessources() {
$this->chargerConfigService();
$this->analyserRessources();
$retour = $this->initialiserService();
return $retour;
}
 
private function chargerConfigService() {
$chemin = Config::get('chemin_configurations')."config_{$this->serviceNom}.ini";
Config::charger($chemin);
}
 
private function analyserRessources() {
if ($this->methode == 'consulter') {
if (!isset($this->ressources) || empty($this->ressources)) {
108,6 → 100,8
} else if ($this->methode == 'supprimer') {
if (isset($this->ressources[0]) && count($this->ressources) == 1 && is_numeric($this->ressources[0])) {
$this->sousServiceNom = 'supprimer-commentaire';
} else {
$this->erreur = "L'identifiant du commentaire est obligatoire et doit être un entier.";
}
}
 
118,12 → 112,17
 
private function lancerMessageErreurRessource() {
$ressource = $this->sousServiceNom.'/'.implode('/', $this->ressources);
$message = "La ressource demandée '$ressource' ".
"n'est pas disponible pour le service ".$this->serviceNom." !\n".
"Les URLs disponibles sont : \n".
" - en GET : commentaires, commentaires/#id \n".
" - en PUT : commentaires".
" - en DELETE : commentaires/#id";
if ($this->erreur != null) {
$message = $this->erreur;
} else {
$message = "La ressource demandée '$ressource' ".
"n'est pas disponible pour le service ".$this->serviceNom." !\n".
"Les URLs disponibles sont : \n".
" - en GET : commentaires, commentaires/#id \n".
" - en PUT : commentaires".
" - en DELETE : commentaires/#id\n".
"#id représente un nombre entier identifiant un commentaire.";
}
$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE;
throw new Exception($message, $code);
}
140,13 → 139,12
$service = null;
foreach ($chemins as $chemin) {
if (file_exists($chemin)) {
$this->conteneur->chargerConfiguration('config_'.$this->serviceNom.'.ini');
require_once $chemin;
$service = new $classe($this->conteneur);
if ($this->methode == 'consulter') {
$retour = $service->consulter($this->ressources, $this->parametres);
$retour = $service->consulter($this->ressources);
} elseif ($this->methode == 'ajouter') {
$retour = $service->ajouter($this->ressources, $this->parametres);
$retour = $service->ajouter($this->parametres);
} elseif ($this->methode == 'supprimer') {
$retour = $service->supprimer($this->ressources);
}