84,9 → 84,55 |
} |
} |
|
/*private function traiterVersion() { |
if( isset($this->parametres['version.projet']) ) { |
$version = $this->parametres['version.projet']; |
if (preg_match('/^([0-9]+(?:[._][0-9]+|))$/', $version, $retour)) { |
$this->version[] = $retour[0]; |
$this->version_projet[] = 'v'.str_replace('.', '_', $this->version[0]); |
$this->table_version[] = Config::get('bdd_table').''.$this->version_projet[0]; |
} elseif ($version == '+') { |
$this->obtenirDerniereVersion(); |
} elseif ($version == '*' && empty($this->ressources) == false ) { |
$this->chargerVersions(); |
$total = count($this->metadonnees); |
for($i = 0 ; $i < $total ; $i++) { |
$this->version[$i] = $this->metadonnees[$i]['version']; |
$this->version_projet[$i] = 'v'.str_replace('.', '_',$this->version[$i]); |
$this->table_version[$i] = Config::get('bdd_table').''.$this->version_projet[$i]; |
} |
}else { |
$e = 'Erreur parametre version inconnu. '; |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE,$e); |
} |
} else { |
$this->obtenirDerniereVersion(); |
} |
|
} |
|
private function obtenirDerniereVersion(){ |
$this->chargerVersions(); |
$this->version[] = $this->metadonnees[0]['version']; |
$this->version_projet[] ='v'.str_replace('.', '_',$this->metadonnees[0]['version']); |
$this->table_version[] = Config::get('bdd_table').''.$this->version_projet[0]; |
} |
|
private function chargerVersions() { |
$requete = "SELECT version ". |
"FROM ".Config::get('bdd_table_meta')." ". |
"ORDER BY date_creation DESC "; |
$resultats = $this->Bdd->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); |
} |
|
$this->metadonnees = $resultats; |
}*/ |
|
|
|
private function analyserMasque($valeur, $type_masque) { |
$this->masque[] = "$type_masque=$valeur"; |
115,8 → 161,16 |
|
|
|
|
/*public function verifierFormat($format) { |
if (in_array($format, $this->formats_supportes)) { |
$this->format_retour = $format; |
} else { |
$e = "Le format $format demandé n'est pas disponible."; |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE,$e); |
} |
}*/ |
|
|
//+-------------------------------------------formatage résultats---------------------------------------------+ |
|
public function formaterResultat($resultat) { |
126,7 → 180,7 |
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE; |
throw new Exception($message, $code); |
} elseif ($resultat) { |
$versionResultat['resultats'] = $this->retournerResultatFormate($resultat); |
$versionResultat = $this->retournerResultatFormate($resultat); |
} else { |
$versionResultat['resultats'] = array(); |
} |
152,8 → 206,13 |
} |
|
|
/*public function donnerVersionDuneTable($table) { |
$version = strstr($table,'v'); |
$version = str_replace('v','', $version); |
$version = str_replace('_','.', $version); |
return $version; |
}*/ |
|
|
public function formaterEnteteResultat() { |
$entete['depart'] = $this->limite_requete['depart']; |
$entete['limite'] = $this->limite_requete['limite']; |
208,17 → 267,12 |
$this->calculerTotalResultat(); |
$requete_limite = ''; |
if ((count($this->ressources)) == 0) { |
if (($this->limite_requete['depart'] <= $this->total_resultat) ){ |
if (($this->limite_requete['limite'] + $this->limite_requete['depart'] ) |
< $this->total_resultat ) { |
if (($this->limite_requete['depart'] < $this->total_resultat) && |
(($this->limite_requete['limite'] + $this->limite_requete['depart'] ) |
< $this->total_resultat )) { |
$requete_limite = 'LIMIT '.$this->limite_requete['depart'].', ' |
.$this->limite_requete['limite']; |
} |
} else { |
$e = "Erreur : la valeur pour le paramètre navigation.départ est supérieure". |
" au nombre total de résultats."; |
throw new Exception($e, RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE); |
} |
} |
} |
return $requete_limite; |
} |