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(); |