Line 31... |
Line 31... |
31 |
private $retour_format = 'max';
|
31 |
private $retour_format = 'max';
|
Line 32... |
Line 32... |
32 |
|
32 |
|
33 |
public function consulter($ressources, $parametres) {
|
33 |
public function consulter($ressources, $parametres) {
|
34 |
$this->ressources = $ressources;
|
34 |
$this->ressources = $ressources;
|
35 |
$this->parametres = $parametres;
|
- |
|
36 |
|
35 |
$this->parametres = $parametres;
|
37 |
$this->traiterParametres();
|
36 |
$this->traiterParametres();
|
38 |
$this->definirVersion();
|
- |
|
39 |
$this->table = Config::get('bdd_table_rang_sup')."_v".$this->version;
|
- |
|
40 |
$resultats = '';
|
- |
|
41 |
$this->recupererNomChamp($this->table);
|
37 |
$this->definirTables();
|
- |
|
38 |
$this->traiterRessources();
|
- |
|
39 |
$resultats = '';
|
- |
|
40 |
foreach ($this->table_version as $version) {
|
42 |
$this->traiterRessources();
|
41 |
$this->table = $version;
|
43 |
$requete = $this->assemblerLaRequete();
|
42 |
$requete = $this->assemblerLaRequete();
|
44 |
$resultat = $this->getBdd()->recupererTous($requete);
|
43 |
$resultat = $this->getBdd()->recupererTous($requete);
|
- |
|
44 |
$versionResultat = $this->traiterResultat($resultat, $version);
|
- |
|
45 |
if (count($this->table_version) > 1) {
|
- |
|
46 |
$resultats[$version] = $versionResultat;
|
- |
|
47 |
} else {
|
- |
|
48 |
$resultats = $versionResultat;
|
- |
|
49 |
}
|
45 |
$versionResultat = $this->traiterResultat($resultat, $this->table, $requete);
|
50 |
}
|
46 |
return $versionResultat;
|
51 |
return $versionResultat;
|
Line 47... |
Line 52... |
47 |
}
|
52 |
}
|
Line 93... |
Line 98... |
93 |
break;
|
98 |
break;
|
94 |
} else {
|
99 |
} else {
|
95 |
$e = "Valeur de paramètre inconnue pour 'retour.format'.";
|
100 |
$e = "Valeur de paramètre inconnue pour 'retour.format'.";
|
96 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
101 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
97 |
}
|
102 |
}
|
- |
|
103 |
case 'version.projet' :
|
- |
|
104 |
$this->traiterVersion($valeur);
|
- |
|
105 |
break;
|
98 |
default :
|
106 |
default :
|
99 |
$e = 'Erreur dans les parametres de votre requête : </br> Le paramètre " '
|
107 |
$e = 'Erreur dans les parametres de votre requête : </br> Le paramètre " '
|
100 |
.$param.' " n\'existe pas.';
|
108 |
.$param.' " n\'existe pas.';
|
101 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); break;
|
109 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); break;
|
102 |
}
|
110 |
}
|
103 |
}
|
111 |
}
|
104 |
}
|
112 |
}
|
105 |
}
|
113 |
}
|
- |
|
114 |
|
- |
|
115 |
//+++------------------------------traitement des versions----------------------------------------++
|
- |
|
116 |
|
106 |
private function definirVersion() {
|
117 |
public function traiterVersion($valeur) {
|
- |
|
118 |
if (preg_match('/^[0-9]+(?:[._][0-9]+)*$/', $valeur) || $valeur == '*' || $valeur == '+') {
|
107 |
$this->chargerVersions();
|
119 |
$this->version_projet = $valeur;
|
- |
|
120 |
} else {
|
- |
|
121 |
$e = "Erreur : La version est inconnue.";
|
108 |
if( (!isset($this->parametres['version.projet']) ) || ((isset($this->parametres['version.projet']) )&&
|
122 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
- |
|
123 |
}
|
109 |
(($this->parametres['version.projet'] == '+') || ($this->parametres['version.projet'] == '')))){
|
124 |
if ($this->version_projet == '*' && $this->ressources == array()) {
|
110 |
$this->version = $this->metadonnees[0]['version'];
|
125 |
$message = "L'affichage de plusieurs versions ne fonctionne que pour les ressources de type /ressources/#id";
|
111 |
} else {
|
126 |
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
|
112 |
$this->version = $this->parametres['version.projet'];
|
127 |
throw new Exception($message, $code);
|
113 |
}
|
128 |
}
|
114 |
}
|
129 |
}
|
Line 115... |
Line 130... |
115 |
|
130 |
|
- |
|
131 |
public function DefinirTables() {
|
116 |
private function chargerVersions() {
|
132 |
$table_num_version = $this->recupererVersionDisponible();
|
117 |
$requete = "SELECT version FROM ".Config::get('bdd_table_meta')." ".
|
133 |
$prefixe_table = config::get('bdd_table_rang_sup');
|
- |
|
134 |
if ( in_array($this->version_projet,$table_num_version) ) {
|
118 |
"ORDER BY date_creation DESC ";
|
135 |
$this->table_version[] = $prefixe_table.'_v'.$this->version_projet;
|
119 |
$resultats = $this->getBdd()->recupererTous($requete);
|
136 |
} elseif ($this->version_projet == '+') {
|
120 |
if (!is_array($resultats) || count($resultats) <= 0) {
|
137 |
$derniere_version = $table_num_version[count($table_num_version) - 1];
|
- |
|
138 |
$this->table_version[] = $prefixe_table.'_v'.str_replace('.', '_', $derniere_version);
|
121 |
$message = "Les méta-données n'ont pu être chargée pour la ressource demandée";
|
139 |
} elseif ($this->version_projet == '*') {
|
- |
|
140 |
foreach ($table_num_version as $num_version) {
|
- |
|
141 |
$this->table_version[] = $prefixe_table.'_v'.str_replace('.', '_', $num_version);
|
- |
|
142 |
}
|
122 |
$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE;
|
143 |
} else {
|
- |
|
144 |
$e = "Erreur : La version est inconnue.";
|
123 |
throw new Exception($message, $code);
|
145 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
124 |
}
|
- |
|
125 |
|
- |
|
126 |
$this->metadonnees = $resultats;
|
146 |
}
|
Line -... |
Line 147... |
- |
|
147 |
}
|
127 |
}
|
148 |
|
Line 128... |
Line 149... |
128 |
|
149 |
|
129 |
//+--------------------------formatages de resultats -------------------------------------------+
|
150 |
//+--------------------------formatages de resultats -------------------------------------------+
|
Line 160... |
Line 181... |
160 |
|
181 |
|
Line 161... |
Line 182... |
161 |
//+--------------------------traitement ontologies -------------------------------------------+
|
182 |
//+--------------------------traitement ontologies -------------------------------------------+
|
162 |
|
183 |
|
- |
|
184 |
public function recupererOntologies($valeur, $champs){
|
163 |
public function recupererOntologies($valeur, $champs){
|
185 |
$chps_sans = preg_replace("/_min|_max/", '', $champs);
|
164 |
$chps_sans = preg_replace("/_min|_max/", '', $champs);
|
186 |
$url = Config::get('url_service_base').Config::get('nom_projet').
|
165 |
$url = $this->ajouterHref('ontologies',$this->champs_ontologiques[$chps_sans].':'.urlencode(urlencode($valeur)));
|
187 |
'/ontologies/'.$this->champs_ontologiques[$chps_sans].':'.urlencode(urlencode($valeur));
|
166 |
$val = $this->consulterHref($url);
|
188 |
$val = $this->consulterHref($url);
|
167 |
$resultat_json[$champs.'.libelle'] = $val->nom;
|
189 |
$resultat_json[$champs.'.libelle'] = $val->nom;
|
168 |
$resultat_json[$champs.'.code'] = $valeur;
|
190 |
$resultat_json[$champs.'.code'] = $valeur;
|