Subversion Repositories Applications.referentiel

Rev

Rev 49 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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