Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 109 → Rev 110

/trunk/services/modules/0.1/Projets.php
20,8 → 20,6
private $parametres = array();
/** Contients les ressources.*/
private $ressources = array();
/** Contients les erreurs HTTP levées par le service.*/
private $erreursHttp = array();
 
/** Nom du projet courrant. */
private $projetNom = array();
38,14 → 36,16
 
public function consulter($ressources, $parametres) {
$resultat = '';
$reponseHttp = new ReponseHttp();
try {
$this->initialiserRessourcesEtParametres($ressources, $parametres);
$resultat = $this->traiterRessources();
$reponseHttp->setResultatService($resultat);
} catch (Exception $e) {
$this->ajouterErreurHttp($e->getCode(), $e->getMessage());
$reponseHttp->ajouterErreur($e);
}
 
$corps = $this->genererReponseHttp($resultat);
$reponseHttp->emettreLesEntetes();
$corps = $reponseHttp->getCorps();
return $corps;
}
 
147,7 → 147,7
 
private function initialiserService() {
$this->chargerNomDuService();
$classe = $this->obtenirNomClasse($this->serviceNom);
$classe = $this->obtenirNomClasseService($this->serviceNom);
$chemins = array();
$chemins[] = $this->cheminCourrant.$this->projetNom.DS.$classe.'.php';
$chemins[] = $this->cheminCourrant.'commun'.DS.$classe.'.php';
173,7 → 173,7
$this->serviceNom = $this->ressources[1];
}
 
private function obtenirNomClasse($mot) {
private function obtenirNomClasseService($mot) {
$classeNom = str_replace(' ', '', ucwords(strtolower(str_replace('-', ' ', $mot))));
return $classeNom;
}
186,53 → 186,5
}
return $ressourcesPourService;
}
 
private function ajouterErreurHttp($entete, $message) {
$this->erreursHttp[] = array('entete' => $entete, 'message' => $message);
}
 
private function etreEnErreurHttp() {
$enErreur = false;
if (count($this->erreursHttp) > 0) {
$enErreur = true;
}
return $enErreur;
}
 
private function genererReponseHttp($resultat) {
$this->genererEnteteHttp();
$corps = $this->genererCorpsHttp($resultat);
return $corps;
}
 
private function genererEnteteHttp($mime = 'application/json', $encodage= 'utf-8') {
// Si aucune erreur n'a été établie (donc un tableau de résultat a bien ete renvoyé...)
if ($this->etreEnErreurHttp()) {
$this->emettreEntete($this->erreursHttp[0]['entete'], 'text/html', $encodage);
} else {
$this->emettreEntete(RestServeur::HTTP_CODE_OK, $mime, $encodage);
}
}
 
private function emettreEntete($entete, $mime, $encodage) {
// Gestion du type de contenu
if (!is_null($mime) && !is_null($encodage)) {
header("Content-Type: $mime; charset=$encodage");
} else if (!is_null($mime) && is_null($encodage)) {
header("Content-Type: $mime");
}
// Envoie de l'entête
RestServeur::envoyerEnteteStatutHttp($entete);
}
 
private function genererCorpsHttp($resultats) {
$corps = '';
if ($this->etreEnErreurHttp()) {
$corps = $this->erreursHttp[0]['message'];
} else {
$corps = json_encode($resultats);
}
return $corps;
}
}
?>