Subversion Repositories Applications.referentiel

Rev

Rev 49 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
23 jpm 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * DAO des traitements à réaliser sur les référentiels.
5
 *
6
 * @package		Referentiel
7
 * @category	Php 5.2
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @copyright	2010 Tela-Botanica
10
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
 * @version		$Id$
13
 *
14
 */
15
class TraitementDao extends Dao {
16
	const SERVICE = 'Traitement';
17
 
26 jpm 18
	private $url = null;
19
 
20
	public function __construct() {
21
		parent::__construct();
22
		$this->url = $this->url_jrest.self::SERVICE;
23
	}
24
 
23 jpm 25
	/**
33 jpm 26
	 * Retourne les infos d'un traitement enregistré dans la bdd pour un id donné.
27
	 *
28
	 * @param integer l'id du traitement.
29
	 * @return array le tableau d'infos ou false en cas d'échec.
30
	 */
31
	public function getInfos($id_traitement) {
32
		$url = $this->url."/Info/$id_traitement";
33
 
34
		$json = $this->envoyerRequeteConsultation($url);
35
		$infos = json_decode($json, true);
36
		return $infos;
37
	}
38
 
39
	/**
38 jpm 40
	 * Retourne l'ensemble des traitements en attente.
41
	 *
42
	 * @param string le code du projet de référentiel.
45 jpm 43
	 * @param string le nom du script à lancer en minuscule.
38 jpm 44
	 * @return mixed un tableau contenant les informations sur les traitements en attente ou false en cas d'échec.
45
	 */
39 jpm 46
	public function getTraitementsEnAttente($code_projet, $script) {
47
		$url = $this->url."/EnAttente/$code_projet/$script";
38 jpm 48
 
49
		$json = $this->envoyerRequeteConsultation($url);
50
		$traitements = json_decode($json, true);
51
		return $traitements;
52
	}
53
 
54
	/**
30 jpm 55
	 * Retourne l'ensemble des traitements en cours.
24 jpm 56
	 *
26 jpm 57
	 * @param string le code du projet de référentiel.
45 jpm 58
	 * @param string le nom du script à lancer en minuscule.
30 jpm 59
	 * @return mixed un tableau contenant les informations sur les traitements en cours ou false en cas d'échec.
24 jpm 60
	 */
39 jpm 61
	public function getTraitementsEnCours($code_projet, $script) {
62
		$url = $this->url."/EnCours/$code_projet/$script";
24 jpm 63
 
64
		$json = $this->envoyerRequeteConsultation($url);
65
		$traitements = json_decode($json, true);
66
		return $traitements;
67
	}
68
 
69
	/**
26 jpm 70
	 * Retourne les ids de l'ensemble des traitements obsolètes.
23 jpm 71
	 *
26 jpm 72
	 * @param string le code du projet de référentiel.
45 jpm 73
	 * @param string le nom du script à lancer en minuscule.
30 jpm 74
	 * @return mixed un tableau contenant les ids des traitements obsolètes ou false en cas d'échec.
26 jpm 75
	 */
45 jpm 76
	public function getTraitementsObsoletes($code_projet, $script) {
77
		$url = $this->url."/Obsolete/$code_projet/$script";
26 jpm 78
 
79
		$json = $this->envoyerRequeteConsultation($url);
80
		$traitements = json_decode($json, true);
81
		return $traitements;
82
	}
83
 
84
	/**
85
	 * Retourne le dernier traitement demandé et non traité pour un projet donné.
86
	 *
87
	 * @param string le code du projet de référentiel.
45 jpm 88
	 * @param string le nom du script à lancer en minuscule.
30 jpm 89
	 * @return mixed un tableau contenant les informations sur le dernier traitement demandé et non traité ou false en cas d'échec.
26 jpm 90
	 */
45 jpm 91
	public function getDernierTraitement($code_projet, $script) {
92
		$url = $this->url."/DerniereDemande/$code_projet/$script";
26 jpm 93
 
94
		$json = $this->envoyerRequeteConsultation($url);
95
		$traitements = json_decode($json, true);
96
		return $traitements;
97
	}
98
 
99
	/**
30 jpm 100
	 * Retourne l'ensemble des traitements terminés.
101
	 *
102
	 * @param string le code du projet de référentiel.
45 jpm 103
	 * @param string le nom du script à lancer en minuscule.
30 jpm 104
	 * @return mixed un tableau contenant les informations sur les traitements terminés ou false en cas d'échec.
105
	 */
39 jpm 106
	public function getTraitementsTermines($code_projet, $script) {
107
		$url = $this->url."/Termines/$code_projet/$script";
30 jpm 108
		$json = $this->envoyerRequeteConsultation($url);
109
		$traitements = json_decode($json, true);
110
		return $traitements;
111
	}
112
 
113
	/**
26 jpm 114
	 * Ajoute une demande de traitement pour une référentiel donné.
115
	 *
23 jpm 116
	 * @param string le code du référentiel.
45 jpm 117
	 * @param string le nom du script à lancer en minuscule.
23 jpm 118
	 * @return mixed l'id du traitement ou false en cas d'échec.
119
	 */
39 jpm 120
	public function ajouterTraitement($code_projet, $script) {
49 jpm 121
		return $this->ajouterTraitementParametre($code_projet, null, $script);
122
	}
123
 
124
	/**
125
	 * Ajoute une demande de traitement pour une référentiel donné
126
	 * en passant des paramêtres au script.
127
	 *
128
	 * @param string le code du référentiel.
129
	 * @param string les données serialisées.
130
	 * @param string le nom du script à lancer en minuscule.
131
	 * @return mixed l'id du traitement ou false en cas d'échec.
132
	 */
133
	public function ajouterTraitementParametre($code_projet, $parametres, $script) {
26 jpm 134
		// Préparation des données à passer par POST
23 jpm 135
		$donnees['referentiel_code'] = $code_projet;
39 jpm 136
		$donnees['script'] = $script;
49 jpm 137
		$donnees['script_parametres'] = (isset($parametres)) ? $parametres : null;
23 jpm 138
 
139
		// Envoie des données et récupération du retour
26 jpm 140
		$json = $this->envoyerRequeteAjout($this->url, $donnees);
23 jpm 141
		$id = json_decode($json, true);
142
		return $id;
143
	}
26 jpm 144
 
145
	/**
146
	 * Modifie un traitement pour indiquer qu'il est débuté.
147
	 *
148
	 * @param integer l'id du traitement
149
	 * @return boolean true en cas de succés sinon false.
150
	 */
151
	public function debuterTraitement($id_traitement) {
152
		$url = $this->url."/$id_traitement";
153
		$donnees['action'] = 'Debuter';
154
 
155
		// Envoie des données et récupération du retour
156
		$json = $this->envoyerRequeteModif($url, $donnees);
157
		$ok = json_decode($json, true);
158
		return $ok;
159
	}
160
 
161
	/**
30 jpm 162
	 * Modifie un traitement pour indiquer qu'il est terminé.
163
	 *
164
	 * @param integer l'id du traitement
165
	 * @return boolean true en cas de succés sinon false.
166
	 */
167
	public function terminerTraitement($id_traitement) {
168
		$url = $this->url."/$id_traitement";
169
		$donnees['action'] = 'Terminer';
170
 
171
		// Envoie des données et récupération du retour
172
		$json = $this->envoyerRequeteModif($url, $donnees);
173
		$ok = json_decode($json, true);
174
		return $ok;
175
	}
176
 
177
	/**
26 jpm 178
	 * Supprime des traitments en fonction de leur id.
179
	 *
180
	 * @param array le tableau des id des traitements à supprimer
181
	 * @return boolean true en cas de succès ou false en cas d'échec.
182
	 */
183
	public function supprimer(Array $ids) {
184
		// Préparation de l'url
185
		$url = $this->url.'/'.implode(',', $ids);
186
 
187
		// Envoie des données et récupération du retour
188
		$json = $this->envoyerRequeteSuppression($url);
189
		$ok = json_decode($json, true);
190
		return $ok;
191
	}
23 jpm 192
}
193
?>