Subversion Repositories eFlore/Applications.del

Rev

Rev 831 | Rev 871 | 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) {
                $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) {
                $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);
                }
        }
        
        protected function proteger($valeur) {
                if (is_array($valeur)) {
                        return $this->bdd->protegerTableau($valeur);
                } else {
                        return $this->bdd->proteger($valeur);
                }
        }
}
?>