33,16 → 33,21 |
public function consulter($ressources, $parametres) { |
$this->ressources = $ressources; |
$this->parametres = $parametres; |
|
$this->traiterParametres(); |
$this->definirVersion(); |
$this->table = Config::get('bdd_table_rang_sup')."_v".$this->version; |
$this->definirTables(); |
$this->traiterRessources(); |
$resultats = ''; |
$this->recupererNomChamp($this->table); |
$this->traiterRessources(); |
$requete = $this->assemblerLaRequete(); |
$resultat = $this->getBdd()->recupererTous($requete); |
$versionResultat = $this->traiterResultat($resultat, $this->table, $requete); |
foreach ($this->table_version as $version) { |
$this->table = $version; |
$requete = $this->assemblerLaRequete(); |
$resultat = $this->getBdd()->recupererTous($requete); |
$versionResultat = $this->traiterResultat($resultat, $version); |
if (count($this->table_version) > 1) { |
$resultats[$version] = $versionResultat; |
} else { |
$resultats = $versionResultat; |
} |
} |
return $versionResultat; |
} |
|
95,6 → 100,9 |
$e = "Valeur de paramètre inconnue pour 'retour.format'."; |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); |
} |
case 'version.projet' : |
$this->traiterVersion($valeur); |
break; |
default : |
$e = 'Erreur dans les parametres de votre requête : </br> Le paramètre " ' |
.$param.' " n\'existe pas.'; |
103,29 → 111,42 |
} |
} |
} |
private function definirVersion() { |
$this->chargerVersions(); |
if( (!isset($this->parametres['version.projet']) ) || ((isset($this->parametres['version.projet']) )&& |
(($this->parametres['version.projet'] == '+') || ($this->parametres['version.projet'] == '')))){ |
$this->version = $this->metadonnees[0]['version']; |
} else { |
$this->version = $this->parametres['version.projet']; |
|
//+++------------------------------traitement des versions----------------------------------------++ |
|
public function traiterVersion($valeur) { |
if (preg_match('/^[0-9]+(?:[._][0-9]+)*$/', $valeur) || $valeur == '*' || $valeur == '+') { |
$this->version_projet = $valeur; |
} else { |
$e = "Erreur : La version est inconnue."; |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); |
} |
if ($this->version_projet == '*' && $this->ressources == array()) { |
$message = "L'affichage de plusieurs versions ne fonctionne que pour les ressources de type /ressources/#id"; |
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE; |
throw new Exception($message, $code); |
} |
} |
|
private function chargerVersions() { |
$requete = "SELECT version FROM ".Config::get('bdd_table_meta')." ". |
"ORDER BY date_creation DESC "; |
$resultats = $this->getBdd()->recupererTous($requete); |
if (!is_array($resultats) || count($resultats) <= 0) { |
$message = "Les méta-données n'ont pu être chargée pour la ressource demandée"; |
$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE; |
throw new Exception($message, $code); |
public function DefinirTables() { |
$table_num_version = $this->recupererVersionDisponible(); |
$prefixe_table = config::get('bdd_table_rang_sup'); |
if ( in_array($this->version_projet,$table_num_version) ) { |
$this->table_version[] = $prefixe_table.'_v'.$this->version_projet; |
} elseif ($this->version_projet == '+') { |
$derniere_version = $table_num_version[count($table_num_version) - 1]; |
$this->table_version[] = $prefixe_table.'_v'.str_replace('.', '_', $derniere_version); |
} elseif ($this->version_projet == '*') { |
foreach ($table_num_version as $num_version) { |
$this->table_version[] = $prefixe_table.'_v'.str_replace('.', '_', $num_version); |
} |
} else { |
$e = "Erreur : La version est inconnue."; |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); |
} |
|
$this->metadonnees = $resultats; |
} |
|
|
//+--------------------------formatages de resultats -------------------------------------------+ |
|
|
162,7 → 183,8 |
|
public function recupererOntologies($valeur, $champs){ |
$chps_sans = preg_replace("/_min|_max/", '', $champs); |
$url = $this->ajouterHref('ontologies',$this->champs_ontologiques[$chps_sans].':'.urlencode(urlencode($valeur))); |
$url = Config::get('url_service_base').Config::get('nom_projet'). |
'/ontologies/'.$this->champs_ontologiques[$chps_sans].':'.urlencode(urlencode($valeur)); |
$val = $this->consulterHref($url); |
$resultat_json[$champs.'.libelle'] = $val->nom; |
$resultat_json[$champs.'.code'] = $valeur; |