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 |