Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 235 → Rev 236

/trunk/services/modules/0.1/commun/Commun.php
45,27 → 45,27
private static $tri_type = '';
 
public function consulter($ressources, $parametres) {
$this->ressources = $ressources;
$this->parametres = $parametres;
$this->chargerNomDuService();
$this->ressources = $ressources;
$this->parametres = $parametres;
$this->chargerNomDuService();
 
$this->traiterParametres();
$this->traiterVersionProjet();
$this->traiterParametres();
$this->traiterVersionProjet();
 
$resultats = '';
foreach ($this->table_version as $version) {
$this->table = $version; //on stocke le nom de la table correspondant à la version du projet en cours
$this->recupererNomChamp($this->table); //on récupère les noms des champs disponibles (Ds Commun.php)
$this->traiterRessources(); //dans CommunNomsTaxons.php
$requete = $this->assemblerLaRequete();
$resultat = $this->getBdd()->recupererTous($requete);
$versionResultat = $this->traiterResultat($resultat, $version, $requete);
if (count($this->table_version) > 1) {
$resultats[$version] = $versionResultat;
} else {
$resultats = $versionResultat;
}
$resultats = '';
foreach ($this->table_version as $version) {
$this->table = $version; //on stocke le nom de la table correspondant à la version du projet en cours
$this->recupererNomChamp($this->table); //on récupère les noms des champs disponibles (Ds Commun.php)
$this->traiterRessources(); //dans CommunNomsTaxons.php
$requete = $this->assemblerLaRequete();
$resultat = $this->getBdd()->recupererTous($requete);
$versionResultat = $this->traiterResultat($resultat, $version, $requete);
if (count($this->table_version) > 1) {
$resultats[$version] = $versionResultat;
} else {
$resultats = $versionResultat;
}
}
 
return $resultats;
}
/trunk/services/modules/0.1/commun/Aide.php
31,7 → 31,7
$this->url_liste_projet = Config::get('url_service_base').'commun/aide/projets';
$this->projet = Config::get('nom_projet');
$this->traiterRessources($ressources);
return $this->formerReponseHTTP(json_encode($this->table_retour));
return $this->formerReponseHTTP($this->table_retour);
}
//-----------------------------------------traiter reponse http-------------------------------------------------------------
54,7 → 54,7
// Envoie de l'entête
RestServeur::envoyerEnteteStatutHttp($this->entete_http);
// Envoie du corps
echo $this->corps_http;
return $this->corps_http;
}
public function renvoyerErreur($e, $c) {
109,19 → 109,9
$url = Config::get('url_service_base').$projet.'/aide';
$intitule = 'PROJET '.strtoupper($projet);
$res = $this->consulterHref($url);
//$res = $this->rest_client->consulter($url);
//$entete = $this->rest_client->getReponseEntetes();
if ($res) {
$res_return = $res->$intitule;
}
/* if (isset($entete['wrapper_data']) && $res != '') {
$res = json_decode($res);
if (!is_object($res)) print_r($res);
else $res_return = $res->$intitule;
} else {
$e = 'Le service aide du projet '.$projet.' ne fonctionne pas et renvoie comme entête : '.$entete.' et comme résultat : '.$res;
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}*/
return $res_return;
}
/trunk/services/modules/0.1/commun/MetaDonnees.php
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();