Rev 841 | Rev 895 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// declare(encoding='UTF-8');/*** Les web service permet d'ajouter ou de modifier les votes associés aux propositions d'une observation** @category php 5.2* @package del* @subpackage images* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL* @version $Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $* @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Images*/class VoteObservation extends RestService {protected $conteneur;protected $gestionBdd;protected $bdd;public function __construct(Conteneur $conteneur = null) {$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;$this->gestionBdd = $conteneur->getGestionBdd();$this->bdd = $this->gestionBdd->getBdd();}/*** Méthode principale de la classe.* Lance la récupération des images dans la base et les place dans un objet ResultatService* pour l'afficher.* @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2)* @param array $parametres les paramètres situés après le ? dans l'url* */public function consulter($ressources, $parametres) {RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);RestServeur::ajouterMessage("Le service 'observation/#id/#id_proposition/vote' n'autorise pas la consultation.");}public function ajouter($ressources, $parametres) {//TODO: vérifier si la proposition existe, et la créer sinon// (cas du vote sur la proposition fabriquée à partir de l'observation originale)$this->verifierParametresAjoutModif($ressources, $parametres);$insertion = 'INSERT INTO del_commentaire_vote '.'(ce_proposition , ce_utilisateur , valeur , date) '.'VALUES ('.$this->proteger($ressources[1]).','.$this->proteger($parametres['utilisateur']).','.$this->proteger($parametres['valeur']).', NOW());';$resultatsVotes = $this->bdd->requeter($insertion);if ($resultatsVotes == false) {RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_MAUVAISE_REQUETE);} else {RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_CREATION_OK);}}public function modifier($ressources, $parametres) {$this->verifierParametresAjoutModif($ressources, $parametres);$modification = 'UPDATE del_commentaire_vote '.'SET valeur ='.$this->proteger($parametres['valeur']).', '.'date = NOW() '.'WHERE '.'ce_proposition = '.$this->proteger($ressources[1]).' AND '.'ce_utilisateur = '.$this->proteger($parametres['utilisateur']);$resultatsVotes = $this->bdd->requeter($modification);if ($resultatsVotes == false) {RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_MAUVAISE_REQUETE);} else {RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_OK);}}public function verifierParametresAjoutModif($ressources, $parametres) {$erreurs = array();if (!is_numeric($ressources[1])) {$erreurs[] = '- le paramètre indiquant l\'identifiant de la proposition doit être numérique ;';}if (!isset($parametres['utilisateur'])) {$erreurs[] = '- paramètre "utilisateur" manquant ;';}if (!isset($parametres['valeur'])) {$erreurs[] = '- paramètre "valeur" manquant ;';} else {if (!is_numeric($parametres['valeur'])) {$erreurs[] = '- le paramètre "valeur" doit être numérique ;';} elseif($parametres['valeur'] != 0 && $parametres['valeur'] != 1) {$erreurs[] = '- le paramètre "valeur" ne peut prendre que les valeur 0 ou 1 ;';}}if (!empty($erreurs)) {$e = 'Erreur lors de la configuration : '."\n";$e .= implode("\n", $erreurs);RestServeur::ajouterMessage($e);throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);}}protected function proteger($valeur) {if (is_array($valeur)) {return $this->bdd->protegerTableau($valeur);} else {return $this->bdd->proteger($valeur);}}}?>