Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 162 → Rev 163

/trunk/services/bibliotheque/Versions.php
New file
0,0 → 1,47
<?php
class Versions {
private $parametres = null;
private $projet = null;
private $versions = array();
public function __construct(AnalyseurParametres $parametres, $projetNom) {
$this->parametres = $parametres;
$this->projet = $projet;
}
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;
throw new Exception($message, $code);
}
return $versionBdd;
}
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'];
}
} else {
$m = 'Versions introuvables dans la table des méta-données';
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $m);
}
return $versions_dispo;
}
}
?>