Line 29... |
Line 29... |
29 |
protected $format_reponse = 'metaDonnees';
|
29 |
protected $format_reponse = 'metaDonnees';
|
30 |
protected $table_ressources;
|
30 |
protected $table_ressources;
|
Line 31... |
Line 31... |
31 |
|
31 |
|
- |
|
32 |
|
- |
|
33 |
public function consulter($ressources, $parametres) {
|
32 |
|
34 |
$this->ressources = $ressources;
|
- |
|
35 |
$this->parametres = $parametres;
|
33 |
public function consulter($ressources, $parametres) {
|
36 |
$this->serviceNom = 'meta-donnees';
|
34 |
$this->service = 'meta-donnees';
|
37 |
|
35 |
$resultat_formate = '';
|
38 |
$resultats = '';
|
36 |
// on traite en premier la version dans le cas ou un langage est demandé pr une version
|
39 |
// on traite en premier la version dans le cas ou un langage est demandé pr une version
|
37 |
$this->traiterRessourceVersion($ressources);
|
40 |
$this->traiterVersionProjet();
|
38 |
$this->traiterParametres($parametres);
|
41 |
$this->traiterParametres($parametres);
|
39 |
$this->traiterRessources($ressources);
|
42 |
$this->traiterRessources($ressources);
|
40 |
if ($this->corps_http == '' && $this->entete_http == '') {
|
43 |
if ($this->corps_http == '' && $this->entete_http == '') {
|
41 |
$requete_meta = $this->assemblerLaRequete();
|
44 |
$requete_meta = $this->assemblerLaRequete();
|
42 |
$resultat_meta = $this->getBdd()->recupererTous($requete_meta);
|
45 |
$resultat_meta = $this->getBdd()->recupererTous($requete_meta);
|
43 |
$resultat_formate = $this->testerResultat($resultat_meta, $requete_meta);
|
46 |
$resultats = $this->formerResultat($resultat_meta, $requete_meta);
|
44 |
}
|
47 |
}
|
Line 45... |
Line -... |
45 |
return $this->formerReponseHTTP($resultat_formate);
|
- |
|
46 |
}
|
48 |
return $resultats;
|
47 |
|
49 |
}
|
48 |
|
50 |
|
49 |
public function testerResultat($resultat_meta, $requete_meta) {
|
51 |
public function formerResultat($resultat_meta, $requete_meta) {
|
50 |
if ($resultat_meta == '') {
|
52 |
if ($resultat_meta == '') {
|
51 |
$e = 'La requête formée comporte une erreur!';
|
53 |
$e = 'La requête formée comporte une erreur!';
|
52 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE,$e);
|
54 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE,$e);
|
53 |
Debug::printr($requete);
|
55 |
Debug::printr($requete);
|
54 |
} elseif ($resultat_meta) {
|
56 |
} elseif ($resultat_meta) {
|
55 |
$resultat_formate = $this->formaterResultat($resultat_meta);
|
57 |
$resultat_formate = $this->retournerResultatFormate($resultat_meta);
|
56 |
} else {
|
58 |
} else {
|
57 |
$m = "Données introuvables dans la base $this->table";
|
59 |
$m = "Données introuvables dans la base $this->table";
|
Line 95... |
Line 97... |
95 |
* - "*" : (/#projet/* /meta-donnees) Renvoi les meta-données de toutes les versions du projet
|
97 |
* - "*" : (/#projet/* /meta-donnees) Renvoi les meta-données de toutes les versions du projet
|
96 |
* - "numero de la version" : (/#projet/2.00/meta-donnees) Renvoi les meta-données de la version 2.00 du projet
|
98 |
* - "numero de la version" : (/#projet/2.00/meta-donnees) Renvoi les meta-données de la version 2.00 du projet
|
97 |
* - non renseignée : (/#projet/meta-donnees) Renvoi les meta-données de la dernière version du projet
|
99 |
* - non renseignée : (/#projet/meta-donnees) Renvoi les meta-données de la dernière version du projet
|
98 |
* Cette info est stockée dans par la classe RestServeur dans la variable $ressources ($ressources[0])
|
100 |
* Cette info est stockée dans par la classe RestServeur dans la variable $ressources ($ressources[0])
|
99 |
*/
|
101 |
*/
|
100 |
public function traiterRessourceVersion(&$ressources) {
|
102 |
public function traiterVersionProjet() {
|
101 |
if (isset($ressources[0]) && !empty($ressources[0])) {
|
103 |
if (isset($this->ressources[0]) && !empty($this->ressources[0])) {
|
102 |
if (preg_match('/(?:[0-9]+(?:_|[.])[0-9]+|[*]| )/', $ressources[0])) {
|
104 |
if (preg_match('/(?:[0-9]+(?:_|[.])[0-9]+|[*]| )/', $this->ressources[0])) {
|
103 |
$this->version_projet = array_shift($ressources);
|
105 |
$this->version_projet = array_shift($this->ressources);
|
104 |
if ($this->version_projet == ' ') $this->version_projet = '+';
|
106 |
if ($this->version_projet == ' ') $this->version_projet = '+';
|
105 |
}
|
107 |
}
|
106 |
switch ($this->version_projet) {
|
108 |
switch ($this->version_projet) {
|
107 |
case '+' :
|
109 |
case '+' :
|
108 |
$this->requete_condition[] = 'version = (SELECT MAX(version) FROM '.Config::get('bdd_table_meta').')';
|
110 |
$this->requete_condition[] = 'version = (SELECT MAX(version) FROM '.Config::get('bdd_table_meta').')';
|
109 |
break;
|
111 |
break;
|
110 |
case '*' :
|
112 |
case '*' :
|
111 |
break;
|
113 |
break;
|
112 |
default :
|
114 |
default :
|
113 |
if (is_numeric($this->version_projet)) {
|
115 |
if (is_numeric($this->version_projet)) {
|
114 |
$res_version = $this->rechercherVersionsDispo($this->version_projet);
|
116 |
$this->ajouterFiltreVersion();
|
115 |
}
|
117 |
}
|
116 |
break;
|
118 |
break;
|
117 |
}
|
119 |
}
|
118 |
}
|
120 |
}
|
Line 122... |
Line 124... |
122 |
|
124 |
|
123 |
/**
|
125 |
/**
|
124 |
* Vérifie que le numéro de la version passée en paramètre correspond à une version existante.
|
126 |
* Vérifie que le numéro de la version passée en paramètre correspond à une version existante.
|
125 |
* Si oui remplit la condition de la requete SQL
|
127 |
* Si oui remplit la condition de la requete SQL
|
126 |
*/
|
128 |
*/
|
127 |
public function rechercherVersionsDispo($val) {
|
129 |
public function ajouterFiltreVersion() {
|
128 |
$val = str_replace('_', '.', $val);
|
130 |
$val = str_replace('_', '.', $this->version_projet);
|
129 |
$req_version = 'SELECT version FROM '.Config::get('bdd_table_meta');
|
131 |
$req_version = 'SELECT version FROM '.Config::get('bdd_table_meta');
|
130 |
$res_version = $this->getBdd()->recupererTous($req_version);
|
132 |
$res_version = $this->getBdd()->recupererTous($req_version);
|
131 |
foreach ($res_version as $version) {
|
133 |
foreach ($res_version as $version) {
|
132 |
$versions_dispo[] = $version['version'];
|
134 |
$versions_dispo[] = $version['version'];
|
Line 136... |
Line 138... |
136 |
} else {
|
138 |
} else {
|
137 |
$e = 'La version demandée n\'existe pas actuellement. </br>Les versions disponibles sont : '
|
139 |
$e = 'La version demandée n\'existe pas actuellement. </br>Les versions disponibles sont : '
|
138 |
.implode($versions_dispo);
|
140 |
.implode($versions_dispo);
|
139 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $e);
|
141 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $e);
|
140 |
}
|
142 |
}
|
141 |
return $res_version;
|
- |
|
142 |
}
|
143 |
}
|
Line 143... |
Line 144... |
143 |
|
144 |
|
144 |
|
145 |
|
Line 172... |
Line 173... |
172 |
return $req;
|
173 |
return $req;
|
173 |
}
|
174 |
}
|
Line 174... |
Line 175... |
174 |
|
175 |
|
Line 175... |
Line 176... |
175 |
//--------------------------------------Fonction de formatage des resultats ---------------------------------------------
|
176 |
//--------------------------------------Fonction de formatage des resultats ---------------------------------------------
|
176 |
|
177 |
|
177 |
public function formaterResultat($resultat) {
|
178 |
public function retournerResultatFormate($resultat) {
|
178 |
switch ($this->format_reponse) {
|
179 |
switch ($this->format_reponse) {
|
179 |
case 'metaDonnees/champ' : $reponse = $this->formaterMetaDonneesChamp($resultat); break;
|
180 |
case 'metaDonnees/champ' : $reponse = $this->formaterMetaDonneesChamp($resultat); break;
|
180 |
case 'metaDonnees' : $reponse = $this->formaterMetaDonnees($resultat); break;
|
181 |
case 'metaDonnees' : $reponse = $this->formaterMetaDonnees($resultat); break;
|
181 |
default : break;
|
182 |
default : break;
|
182 |
}
|
183 |
}
|
Line 183... |
Line 184... |
183 |
return json_encode($reponse);
|
184 |
return $reponse;
|
Line 184... |
Line 185... |
184 |
}
|
185 |
}
|
Line 192... |
Line 193... |
192 |
$this->afficherDonnees($key, $val);
|
193 |
$this->afficherDonnees($key, $val);
|
193 |
}
|
194 |
}
|
194 |
}
|
195 |
}
|
195 |
if ($this->retour_format == 'max' && $this->version_projet == '*') {
|
196 |
if ($this->retour_format == 'max' && $this->version_projet == '*') {
|
196 |
$this->table_retour['href'] = Config::get('url_service_base').Config::get('nom_projet')
|
197 |
$this->table_retour['href'] = Config::get('url_service_base').Config::get('nom_projet')
|
197 |
.'/'.$version['version'].'/'.$this->service;
|
198 |
.'/'.$version['version'].'/'.$this->serviceNom;
|
198 |
}
|
199 |
}
|
199 |
$table[] = $this->table_retour;
|
200 |
$table[] = $this->table_retour;
|
200 |
$this->table_retour = array();
|
201 |
$this->table_retour = array();
|
201 |
}
|
202 |
}
|
202 |
return $table;
|
203 |
return $table;
|