Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 828 → Rev 829

/trunk/services/modules/0.1/images/VotesImage.php
15,14 → 15,14
* @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Images
*/
 
class VotesImage {
class VotesImage extends RestService {
private $imageIds = array();
private $conteneur;
private $navigation;
private $masque;
private $gestionBdd;
private $bdd;
protected $gestionBdd;
protected $bdd;
private $ressources;
private $parametres;
62,19 → 62,50
}
public function ajouter($ressources, $parametres) {
//$today =
$insertion = 'INSERT INTO `del`.`del_image_vote` '.
'(`ce_image`, `ce_protocole`, `ce_utilisateur`, `valeur`, `date`)
VALUES ('.$ressources[0].','.$parametres['protocole'].','.$parametres['utilisateur'].','.
$parametres['valeur'].', NOW());';
$resultatsVotes = $this->bdd->requeter($insertion);
if ($resultatsVotes == false) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_MAUVAISE_REQUETE);
$this->verifierParametresAjoutModif($ressources, $parametres);
$insertion = 'INSERT INTO del_image_vote '.
'(ce_image, ce_protocole, ce_utilisateur, valeur, date) '.
'VALUES ('.
$this->proteger($ressources[0]).','.
$this->proteger($parametres['protocole']).','.
$this->proteger($parametres['utilisateur']).','.
$this->proteger($parametres['valeur']).', '.
'NOW()'.
');';
$resultat = $this->bdd->requeter($insertion);
if ($resultat == false) {
throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
} else {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_CREATION_OK);
}
}
public function modifier($ressources, $parametres) {
$this->verifierParametresAjoutModif($ressources, $parametres);
//TODO: est il nécessaire de tester si ça existe et renoyer une erreur 404
// si l'on vote ? Cela peut ralentir considérablement les choses
// une contrainte d'unicité sur le triplet image, protocole, vote existe,
// ça suffira pour provoquer une erreur 500
$modification = 'UPDATE del_image_vote '.
'SET valeur = '.$this->proteger($parametres['valeur']).', '.
' date = NOW() '.
'WHERE '.
'ce_image = '.$this->proteger($ressources[0]).' AND '.
'ce_protocole = '.$this->proteger($parametres['protocole']).' AND '.
'ce_utilisateur = '.$this->proteger($parametres['utilisateur']).' ';
$resultat = $this->bdd->requeter($modification);
if ($resultat == false) {
throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
} else {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_OK);
}
}
/*-------------------------------------------------------------------------------
CONFIGURATION DU SERVICE
--------------------------------------------------------------------------------*/
119,6 → 150,40
throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
}
}
public function verifierParametresAjoutModif($ressources, $parametres) {
$erreurs = array();
if (!is_numeric($ressources[0])) {
$erreurs[] = '- le paramètre indiquant l\'identifiant de l\'image doit être numérique ;';
}
if (!isset($parametres['utilisateur'])) {
$erreurs[] = '- paramètre "utilisateur" manquant ;';
}
if (!isset($parametres['protocole'])) {
$erreurs[] = '- paramètre "id_protocole" manquant ;';
} else {
if (!is_numeric($parametres['protocole'])) {
$erreurs[] = '- le paramètre "protocole" doit être numérique ;';
}
}
if (!isset($parametres['valeur'])) {
$erreurs[] = '- paramètre "valeur" manquant ;';
} else {
if (!is_numeric($parametres['valeur'])) {
$erreurs[] = '- le paramètre "valeur" doit être numérique ;';
}
}
if (!empty($erreurs)) {
$e = 'Erreur lors de la configuration : '."\n";
$e .= implode("\n", $erreurs);
throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
}
}
 
/**
130,8 → 195,7
$where[] = 'ce_protocole = '.$this->proteger($this->parametres['protocole']);
}
return implode(' AND ', $where);
}
}
/*-------------------------------------------------------------------------------
CHARGEMENT DES IMAGES
--------------------------------------------------------------------------------*/
154,18 → 218,13
$requete = 'SELECT FOUND_ROWS() AS nbre ';
$resultats = $this->bdd->recuperer($requete);
return (int) $resultats['nbre'];
}
}
 
 
/*-------------------------------------------------------------------------------
FORMATER ET METTRE EN FORME
--------------------------------------------------------------------------------*/
 
/**
* Formater une observation depuis une ligne liaison
* @param $liaison liaison issue de la recherche