Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 235 → Rev 236

/trunk/services/modules/0.1/commun/MetaDonnees.php
31,28 → 31,30
 
 
public function consulter($ressources, $parametres) {
$this->service = 'meta-donnees';
$resultat_formate = '';
$this->ressources = $ressources;
$this->parametres = $parametres;
$this->serviceNom = 'meta-donnees';
$resultats = '';
// on traite en premier la version dans le cas ou un langage est demandé pr une version
$this->traiterRessourceVersion($ressources);
$this->traiterVersionProjet();
$this->traiterParametres($parametres);
$this->traiterRessources($ressources);
if ($this->corps_http == '' && $this->entete_http == '') {
$requete_meta = $this->assemblerLaRequete();
$resultat_meta = $this->getBdd()->recupererTous($requete_meta);
$resultat_formate = $this->testerResultat($resultat_meta, $requete_meta);
$resultats = $this->formerResultat($resultat_meta, $requete_meta);
}
return $this->formerReponseHTTP($resultat_formate);
return $resultats;
}
 
 
public function testerResultat($resultat_meta, $requete_meta) {
public function formerResultat($resultat_meta, $requete_meta) {
if ($resultat_meta == '') {
$e = 'La requête formée comporte une erreur!';
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE,$e);
Debug::printr($requete);
} elseif ($resultat_meta) {
$resultat_formate = $this->formaterResultat($resultat_meta);
$resultat_formate = $this->retournerResultatFormate($resultat_meta);
} else {
$m = "Données introuvables dans la base $this->table";
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $m);
97,10 → 99,10
* - non renseignée : (/#projet/meta-donnees) Renvoi les meta-données de la dernière version du projet
* Cette info est stockée dans par la classe RestServeur dans la variable $ressources ($ressources[0])
*/
public function traiterRessourceVersion(&$ressources) {
if (isset($ressources[0]) && !empty($ressources[0])) {
if (preg_match('/(?:[0-9]+(?:_|[.])[0-9]+|[*]| )/', $ressources[0])) {
$this->version_projet = array_shift($ressources);
public function traiterVersionProjet() {
if (isset($this->ressources[0]) && !empty($this->ressources[0])) {
if (preg_match('/(?:[0-9]+(?:_|[.])[0-9]+|[*]| )/', $this->ressources[0])) {
$this->version_projet = array_shift($this->ressources);
if ($this->version_projet == ' ') $this->version_projet = '+';
}
switch ($this->version_projet) {
111,7 → 113,7
break;
default :
if (is_numeric($this->version_projet)) {
$res_version = $this->rechercherVersionsDispo($this->version_projet);
$this->ajouterFiltreVersion();
}
break;
}
124,8 → 126,8
* Vérifie que le numéro de la version passée en paramètre correspond à une version existante.
* Si oui remplit la condition de la requete SQL
*/
public function rechercherVersionsDispo($val) {
$val = str_replace('_', '.', $val);
public function ajouterFiltreVersion() {
$val = str_replace('_', '.', $this->version_projet);
$req_version = 'SELECT version FROM '.Config::get('bdd_table_meta');
$res_version = $this->getBdd()->recupererTous($req_version);
foreach ($res_version as $version) {
138,7 → 140,6
.implode($versions_dispo);
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $e);
}
return $res_version;
}
 
 
174,13 → 175,13
 
//--------------------------------------Fonction de formatage des resultats ---------------------------------------------
 
public function formaterResultat($resultat) {
public function retournerResultatFormate($resultat) {
switch ($this->format_reponse) {
case 'metaDonnees/champ' : $reponse = $this->formaterMetaDonneesChamp($resultat); break;
case 'metaDonnees' : $reponse = $this->formaterMetaDonnees($resultat); break;
default : break;
}
return json_encode($reponse);
return $reponse;
}
 
//--------------------------------------Fonction de formatage des resultats de /metaDonnees/----------------------------
194,7 → 195,7
}
if ($this->retour_format == 'max' && $this->version_projet == '*') {
$this->table_retour['href'] = Config::get('url_service_base').Config::get('nom_projet')
.'/'.$version['version'].'/'.$this->service;
.'/'.$version['version'].'/'.$this->serviceNom;
}
$table[] = $this->table_retour;
$this->table_retour = array();