Subversion Repositories eFlore/Applications.del

Rev

Rev 1793 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1158 aurelien 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Supprime un mot clé par son identifiant
5
 *
6
 * @category	php 5.2
7
 * @package	del
8
 * @subpackage images
9
 * @author		Aurélien PERONNET <aurelien@tela-botanica.org>
10
 * @copyright	Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
11
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
12
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
13
 * @version	$Id$
14
 * @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Images
15
 */
16
 
1436 raphael 17
require_once('MotClePictoflora.php');
18
 
1158 aurelien 19
class SupprimerMotCle {
1793 jpm 20
 
1158 aurelien 21
	private $conteneur;
22
	private $navigation;
23
	private $bdd;
24
	private $parametres = array();
25
	private $ressources = array();
1793 jpm 26
 
1158 aurelien 27
	private $motCleId;
28
 
29
	public function __construct(Conteneur $conteneur = null) {
30
		$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
31
		$this->navigation = $conteneur->getNavigation();
1793 jpm 32
		$this->bdd = $this->conteneur->getBdd();
1158 aurelien 33
	}
1793 jpm 34
 
1158 aurelien 35
	/**
36
	 * Supprime un mot-clé si les objets fournis en paramètres sont valides
37
	 * pour l'afficher.
38
	 * @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2)
39
	 * @param array $parametres les paramètres situés après le ? dans l'url
40
	 * */
41
	public function supprimer($ressources, $parametres) {
42
		$this->initialiserRessourcesEtParametres($ressources, $parametres);
1793 jpm 43
 
1158 aurelien 44
		// Gestion des configuration du script
45
		$this->verifierConfiguration();
46
		$insertion = $this->supprimerMotCle($this->motCleId);
1793 jpm 47
 
1158 aurelien 48
		// Mettre en forme le résultat et l'envoyer pour affichage
49
		$resultat = new ResultatService();
1793 jpm 50
 
1158 aurelien 51
		return $resultat;
52
	}
1793 jpm 53
 
1158 aurelien 54
	private function initialiserRessourcesEtParametres($ressources, $parametres) {
55
		$this->ressources = $ressources;
1793 jpm 56
		$this->parametres = $parametres;
1158 aurelien 57
	}
1793 jpm 58
 
1158 aurelien 59
	/*-------------------------------------------------------------------------------
60
	 							CONFIGURATION DU SERVICE
1793 jpm 61
	 --------------------------------------------------------------------------------*/
1158 aurelien 62
	/**
1793 jpm 63
	 * Vérifier que le service est bien configuré
1158 aurelien 64
	 * */
65
	public function verifierConfiguration() {
66
		$erreurs = array();
1793 jpm 67
 
1158 aurelien 68
		if (!isset($this->ressources[0])) {
69
			$erreurs[] = ' - impossible de supprimer un mot clé sans l\'identifiant associé ;';
70
		} else if(!is_numeric($this->ressources[0])) {
71
			$erreurs[] = ' - l\'identifiant de mot clé doit être un entier ;';
72
		}
1793 jpm 73
 
1158 aurelien 74
		if (!empty($erreurs)) {
75
			$e = 'Erreur de configuration :';
76
			$e = implode("\n", $erreurs);
77
			echo var_dump($e);
78
			throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
79
		} else {
80
			$this->motCleId = $this->ressources[0];
81
		}
82
	}
1793 jpm 83
 
1158 aurelien 84
	/*-------------------------------------------------------------------------------
1793 jpm 85
							   SUPPRESSION DES MOTS CLES
86
	--------------------------------------------------------------------------------*/
1158 aurelien 87
	/**
88
	 * Supprime un mot clé dans la table
89
	 * @param $id_mot_cle string identifiant de mot clé
90
	 * */
91
	private function supprimerMotCle($id_mot_cle) {
1436 raphael 92
		$retour = $this->bdd->requeter(sprintf('UPDATE del_image_tag '.
93
											   'SET actif = 0, date_modification = NOW() '.
94
											   'WHERE id_tag = %d',
95
											   intval($id_mot_cle)));
1158 aurelien 96
 
97
		if ($retour == null) {
98
			$e = 'Erreur inopinée lors de la suppression';
99
			throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
100
		}
1436 raphael 101
 
102
		MotClePictoflora::updateStats($this->bdd, $id_mot_cle);
1158 aurelien 103
		return null;
104
	}
105
}
106
?>