Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 206 → Rev 207

/trunk/services/bibliotheque/Versions.php
1,47 → 1,61
<?php
class Versions {
private $parametres = null;
private $projet = null;
private $versions = array();
public function __construct(AnalyseurParametres $parametres, $projetNom) {
private $bdd = null;
private $projetNom = null;
private $versionsDispo = array();
private $versionCourrante = array();
 
public function __construct(Parametres $parametres, Bdd $bdd,$projetNom) {
$this->parametres = $parametres;
$this->projet = $projet;
$this->bdd = $bdd;
$this->projetNom = $projetNom;
$this->versionsDispo = $this->chargerVersionsDisponibles();
}
private function getVersion() {
$version = $this->parametres->getVersionProjet();
$versionBdd = '';
if ($version == '+') {
$versionBdd = Config::get('Versions.derniere');
} else if (is_numeric($version)) {
$versionBdd = str_replace('.', '_', $version);
} else if ($version == '*') {
$message = "La version du projet ne peut valoir * pour cette ressource.";
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
 
private function chargerVersionsDisponibles() {
$tableMeta = $this->projetNom.'_meta';
$requete = "SELECT version FROM $tableMeta";
$resultat = $this->bdd->recupererTous($requete);
if ($resultat == '') {
//cas ou la requete comporte des erreurs
$message = "La requête SQL de versionnage formée comporte une erreur : $requete";
$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE;
throw new Exception($message, $code);
} elseif ($resultat === false) {
$message = "Versions introuvables dans la table des méta-données";
$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE;
throw new Exception($message, $code);
} else {
foreach ($resultat as $version) {
$versionsDispo[] = $version['version'];
}
}
return $versionBdd;
 
return $versionsDispo;
}
public function chargerVersionsDisponibles() {
$tableMeta = $this->projetNom.'_meta';
$req_version = "SELECT version FROM $tableMeta";
$res_version = $this->getBdd()->recupererTous($req_version);
if ($res_version == '') {
//cas ou la requete comporte des erreurs
$e = "La requête SQL de versionnage formée comporte une erreur : $req_version";
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $e);
} elseif ($res_version) {
foreach ($res_version as $version) {
$versions_dispo[] = $version['version'];
 
public function getVersions() {
$versions = array();
$versionDemandee = $this->parametres->get('version.projet');
if ($versionDemandee == '+') {
$versions[] = end($this->versionsDispo);
} else if (is_numeric($versionDemandee)) {
if (in_array($versionDemandee, $this->versionsDispo)) {
$versions[] = $versionDemandee;
}
} else {
$m = 'Versions introuvables dans la table des méta-données';
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $m);
} else if ($versionDemandee == '*') {
$versions = $this->versionsDispo;
}
return $versions_dispo;
$versions = $this->remplacerPointParUnderscore($versions);
return $versions;
}
 
private function remplacerPointParUnderscore($versions) {
foreach ($versions as $cle => $valeur) {
$versions[$cle] = str_replace('.', '_', $valeur);
}
return $versions;
}
}
?>