38,15 → 38,14 |
$this->ressources = $ressources; |
$this->parametres = $parametres; |
$this->traiterParametres(); |
$this->traiterVersionProjet(); |
$this->DefinirTables(); |
$this->traiterRessources(); |
$resultats = null; |
foreach ($this->table_version as $version) { |
$this->table = $version; |
$this->recupererNomChamp($this->table); |
$this->traiterRessources(); |
$requete = $this->assemblerLaRequete(); |
$resultat = $this->getBdd()->recupererTous($requete); |
$versionResultat = $this->traiterResultat($resultat, $version, $requete); |
$versionResultat = $this->traiterResultat($resultat, $version); |
if (count($this->table_version) > 1) { |
$resultats[$version] = $versionResultat; |
} else { |
56,7 → 55,7 |
return $resultats; |
} |
|
public function traiterResultat($resultat, $version, $requete) { |
public function traiterResultat($resultat, $version) { |
$versionResultat = null; |
if ($resultat == '') { |
$message = 'La requête SQL formée comporte une erreur!'; |
134,6 → 133,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.'; |
174,7 → 176,41 |
$this->champs_recherches=" cle, catminat_code, BDNT, num_taxon, num_nomen "; |
} |
} |
|
|
//+++------------------------------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); |
} |
} |
|
public function DefinirTables() { |
$table_num_version = $this->recupererVersionDisponible(); |
$prefixe_table = config::get('bdd_table'); |
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); |
} |
} |
|
//+--------------------------formatages de resultats -------------------------------------------+ |
public function retournerResultatFormate($resultat) { |
if ((count($this->ressources)) == 0) { |
297,8 → 333,10 |
|
|
//+--------------------------traitement ontologies -------------------------------------------+ |
|
public function recupererOntologies($valeur, $champs){ |
$url = $this->ajouterHref('ontologies',$this->champs_ontologiques[$champs].':'.urlencode(urlencode($valeur))); |
$url = Config::get('url_service_base').Config::get('nom_projet'). |
'/ontologies/'.$this->champs_ontologiques[$champs].':'.urlencode(urlencode($valeur)); |
$val = $this->consulterHref($url); |
$resultat_json[$champs.'.libelle'] = $val->nom; |
$resultat_json[$champs.'.code'] = $valeur; |
330,7 → 368,8 |
|
foreach ($types_sstypes as $cle => $tb) { |
if (($cle == 'type.principal') || ($cle == 'type.secondaire')) { |
$url = $this->ajouterHref('ontologies','TB:'.urlencode(urlencode($tb))); |
$url = Config::get('url_service_base').Config::get('nom_projet'). |
'/ontologies/TB:'.urlencode(urlencode($tb)); |
$val = $this->consulterHref($url); |
$libelle[$cle]= $val->nom; |
$detail[$cle]['libelle'] = $val->nom; |
340,7 → 379,8 |
if ($cle == 'sous_type.principal' || $cle == 'sous_type.secondaire' || $cle == 'sous_type.special') { |
$i = 0; |
foreach ($tb as $sstypes) { |
$url = $this->ajouterHref('ontologies','ssTT:'.urlencode(urlencode($sstypes))); |
$url = Config::get('url_service_base').Config::get('nom_projet'). |
'/ontologies/ssTT:'.urlencode(urlencode($sstypes)); |
$val = $this->consulterHref($url); |
$libelle[$cle]=$val->nom; |
$detail[$cle][$i]['libelle'] = $val->nom; |