28,6 → 28,8 |
private $ressources = array(); |
private $tri = 'date_transmission'; |
private $directionTri = 'desc'; |
private $protocole_defaut = 1; |
private $valeur_vote_min_defaut = 3; |
|
public function __construct(Conteneur $conteneur = null) { |
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur; |
53,10 → 55,11 |
// Gestion des configuration du script |
$this->configurer(); |
$this->verifierConfiguration(); |
|
$this->verifierParametres(); |
|
$this->verifierParametresTri(); |
$this->initialiserTri(); |
$this->parametres['protocole'] = '1'; |
|
// Lancement du service |
$liaisons = $this->chargerLiaisons(); |
$total = $this->compterImages(); |
73,30 → 76,26 |
private function initialiserRessourcesEtParametres($ressources, $parametres) { |
$this->ressources = $ressources; |
$this->parametres = $parametres; |
if(!isset($parametres['protocole'])) { |
$this->parametres['protocole'] = $this->protocole_defaut; |
} |
if(!isset($parametres['valeur_vote_min'])) { |
$this->parametres['valeur_vote_min'] = $this->valeur_vote_min_defaut; |
} |
} |
|
private function verifierParametresTri() { |
|
private function verifierParametres() { |
$erreurs = array(); |
$tris_possibles = $this->conteneur->getParametre('tris_possibles'); |
$tris_possibles_tableau = explode(',', $tris_possibles); |
if(isset($this->parametres['tri']) && !in_array($this->parametres['tri'], $tris_possibles_tableau)) { |
$erreurs[] = '- le type de tri demandé est incorrect, les valeurs possibles sont '.$tris_possibles.' ;'; |
if(isset($this->parametres['protocole']) && !is_numeric($this->parametres['protocole'])) { |
$erreurs[] = '- la valeur pour le protocole doit être un entier '; |
} |
|
if(isset($this->parametres['tri']) && $this->parametres['tri'] == "votes") { |
if(!isset($this->parametres['protocole']) || !is_numeric($this->parametres['protocole'])) { |
$erreurs[] = '- Le paramètre protocole est obligatoire en cas de tri par vote et doit être un entier ;'; |
} |
if(isset($this->parametres['valeur_min_vote']) && !is_numeric($this->parametres['valeur_min_vote'])) { |
$erreurs[] = '- la valeur minimum de valeur des votes doit être un entier '; |
} |
|
$directions_tri = array('asc', 'desc'); |
if(isset($this->parametres['ordre']) && !in_array($this->parametres['ordre'], $directions_tri)) { |
$erreurs[] = '- la direction du tri demandé est incorrecte, les valeurs supportées sont asc ou desc ;'; |
} |
|
if (!empty($erreurs)) { |
$e = 'Erreur lors de l\'analyse des parametres du tri : '."\n"; |
$e = 'Erreur lors de l\'analyse des parametres du service : '."\n"; |
$e .= implode("\n", $erreurs); |
throw new Exception($e, RestServeur::HTTP_CODE_ERREUR); |
} |
214,9 → 213,9 |
'ON du.id_utilisateur = di.ce_utilisateur '. |
'LEFT JOIN del_image_vote dvote '. |
'ON doi.id_image = dvote.ce_image AND dvote.ce_protocole = '.$this->parametres['protocole'].' '; |
$requeteLiaisons .= 'GROUP BY dvote.ce_image HAVING AVG(dvote.valeur) >= 3 ORDER BY moyenne_votes'; |
//$requeteLiaisons .= $this->getTri(); |
$requeteLiaisons .= 'GROUP BY dvote.ce_image HAVING AVG(dvote.valeur) >= '.$this->parametres['valeur_vote_min'].' ORDER BY moyenne_votes'; |
$requeteLiaisons .= $this->gestionBdd->getLimitSql(); |
|
return $this->bdd->recupererTous($requeteLiaisons); |
} |
|