62,71 → 62,45 |
/** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */ |
protected $total_resultat; |
|
// +-------------------------------------------------------------------------------------------------------------------+ |
public function consulter($ressources, $parametres) { |
$this->traiterParametres($parametres); |
$this->traiterVersionProjet($ressources); |
$this->traiterRessources($ressources); |
$resultat_formate = ''; |
// +-----------------------------------------------------------------------------------------------------+ |
public function traiterParametres() { |
if (isset($this->parametres) && !empty($this->parametres)) { |
$this->table_param = $this->parametres; |
|
if ($this->corps_http == '' && $this->entete_http == '') { |
foreach ($this->table_version as $version) { |
$this->table = $version; //on stocke le nom de la table correspondant à la version du projet en cours |
$requete = $this->assemblerLaRequete(); //print_r($requete); |
$resultat = $this->getBdd()->recupererTous($requete); |
$res_version = $this->testerResultat($resultat, $requete); |
} |
if ($this->corps_http == '' && $this->entete_http == '') { |
if (isset($res_version)) { |
$resultat_formate = json_encode($res_version); |
} |
} |
} |
return $this->formerReponseHTTP($resultat_formate); |
} |
|
public function testerResultat($resultat, $requete) { |
if ($resultat == '') { //cas ou la requete comporte des erreurs |
$s = 'La requête SQL formée comporte une erreur !!'; |
Debug::printr($requete); |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $s); |
} elseif ($resultat) { |
if (count($this->table_version) > 1) { |
$res_version[$version] = $this->retournerResultatFormate($resultat); |
} else { |
$res_version = $this->retournerResultatFormate($resultat); |
} |
} else { |
$d = 'Données recherchées introuvables dans la base'; |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $d); |
Debug::printr($requete); |
} |
return $res_version; |
} |
|
// +-------------------------------------------------------------------------------------------------------------------+ |
public function traiterParametres($parametres) { |
if (isset($parametres) && !empty($parametres)) { |
$this->table_param = $parametres; |
|
// masque : filtre la liste en fonction d'un masque de recherche portant sur le code, le nom ou la region. |
// masque.code : filtre uniquement sur le code. masque.nom : filtre uniquement sur le nom. |
// masque.region : filtre uniquement sur la region. |
if (isset($parametres['recherche']) && $parametres['recherche'] != '') { |
$this->recherche = $parametres['recherche']; |
if (isset($this->parametres['recherche']) && $this->parametres['recherche'] != '') { |
$this->recherche = $this->parametres['recherche']; |
} |
|
foreach ($parametres as $param => $valeur) { |
foreach ($this->parametres as $param => $valeur) { |
switch ($param) { |
case 'masque' : $this->ajouterLeFiltreMasque('masque', $valeur); break; |
case 'masque_code' : $this->ajouterLeFiltreMasque('codet', $valeur); break; |
case 'masque_nom' : $this->ajouterLeFiltreMasque('nom', $valeur); break; |
case 'masque_statut' : $this->ajouterLeFiltreMasque('codet_statut', $valeur); break; |
case 'retour_format' : $this->retour_format = $valeur; break; |
case 'navigation_depart' : $this->limite_requete['depart'] = $valeur; break; |
case 'navigation_limite' : $this->limite_requete['limite'] = $valeur; break; |
case 'recherche' : break; |
default : $p = 'Erreur dans les paramètres de recherche de votre requête : '. |
case 'masque' : |
$this->ajouterLeFiltreMasque('masque', $valeur); |
break; |
case 'masque.code' : |
$this->ajouterLeFiltreMasque('codet', $valeur); |
break; |
case 'masque.nom' : |
$this->ajouterLeFiltreMasque('nom', $valeur); |
break; |
case 'masque.statut' : |
$this->ajouterLeFiltreMasque('codet_statut', $valeur); |
break; |
case 'retour.format' : |
$this->retour_format = $valeur; |
break; |
case 'navigation.depart' : |
$this->limite_requete['depart'] = $valeur; |
break; |
case 'navigation.limite' : |
$this->limite_requete['limite'] = $valeur; |
break; |
case 'recherche' : |
break; |
default : |
$p = 'Erreur dans les paramètres de recherche de votre requête : '. |
'</br> Le paramètre " '.$param.' " n\'existe pas.'; |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $p); break; |
} |
178,10 → 152,10 |
} |
} |
|
// +-------------------------------------------------------------------------------------------------------------------+ |
public function traiterRessources(&$ressources) { |
if (isset($ressources) && !empty($ressources)) { |
$this->table_ressources = $ressources; |
// +-----------------------------------------------------------------------------------------------------+ |
public function traiterRessources() { |
if (isset($this->ressources) && !empty($this->ressources)) { |
$this->table_ressources = $this->ressources; |
if (isset($this->table_ressources[0]) && !empty($this->table_ressources[0])) { |
//requete = /zone-geo/#id |
$this->traiterRessourceId(); |
286,8 → 260,12 |
$this->table_retour['limite'] = $this->limite_requete['limite']; |
$this->table_retour['total'] = $this->total_resultat; |
$url = $this->formulerUrl($this->total_resultat, '/zone-geo'); |
if ($url['precedent'] != '') { $this->table_retour['href.precedent'] = $url['precedent']; } |
if ($url['suivant'] != '') { $this->table_retour['href.suivant'] = $url['suivant']; } |
if (isset($url['precedent']) && $url['precedent'] != '') { |
$this->table_retour['href.precedent'] = $url['precedent']; |
} |
if (isset($url['suivant']) && $url['suivant'] != '') { |
$this->table_retour['href.suivant'] = $url['suivant']; |
} |
$table_retour_json['entete'] = $this->table_retour; |
|
//on remplit la table $table_retour_json['resultat'] |