Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
208 jp_milcent 1
package org.tela_botanica.client.modeles;
2
 
3
import org.tela_botanica.client.RegistreId;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
5
 
6
import com.extjs.gxt.ui.client.Registry;
7
import com.extjs.gxt.ui.client.widget.Info;
8
import com.google.gwt.core.client.GWT;
9
import com.google.gwt.http.client.Request;
10
import com.google.gwt.http.client.RequestBuilder;
11
import com.google.gwt.http.client.RequestCallback;
12
import com.google.gwt.http.client.RequestException;
13
import com.google.gwt.http.client.Response;
231 jp_milcent 14
import com.google.gwt.http.client.URL;
208 jp_milcent 15
import com.google.gwt.json.client.JSONArray;
16
import com.google.gwt.json.client.JSONParser;
17
import com.google.gwt.json.client.JSONValue;
18
 
19
public class StructureAPersonneAsyncDao {
231 jp_milcent 20
	private static final String SERVICE_NOM = "CoelStructureAPersonne";
21
 
208 jp_milcent 22
	public void selectionner(final Rafraichissable r, String idUtilisateur, final String idStructure, final String idRole) {
23
		// Ajout des paramètres et données à selectionner dans l'URL
24
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
231 jp_milcent 25
			SERVICE_NOM +
208 jp_milcent 26
			(idStructure == null ? "" : "/"+idStructure) +
27
			(idRole == null ? "" : "/"+idRole) +
28
			"";
29
 
30
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url);
31
		try {
32
			rb.sendRequest(null, new RequestCallback() {
33
 
34
				public void onError(Request request, Throwable exception) {
35
					// Gestion des exceptions déclenchées par l'exécution de la requête
231 jp_milcent 36
					GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (selection)", exception);
208 jp_milcent 37
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
38
				}
39
 
40
				public void onErrorHTTP(Request request, Response reponse) {
41
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
42
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
43
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
44
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
45
				}
46
 
47
				public void onResponseReceived(Request request, Response response) {
48
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
49
					if (response.getStatusCode() != 200) {
50
						onErrorHTTP(request, response);
51
					} else {
52
						if (response.getText().length() != 0 && response.getText() != null) {
53
							final JSONValue responseValue = JSONParser.parse(response.getText());
54
 
55
							// Si la requête est un succès, reception d'un tableau
56
							if (responseValue.isArray() != null) {
57
								final JSONArray reponse = responseValue.isArray();
58
								// Transformation du tableau JSON réponse en ListeInstitution
59
								Information info = new Information("liste_structure_a_personne");
60
								StructureAPersonneListe personnel = new StructureAPersonneListe(reponse);
61
								info.setDonnee(0, personnel);
62
								// et on met à jour le demandeur des données
63
								r.rafraichir(info);
64
							} else {
65
								GWT.log(url+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null);
66
							}
67
						} else {
68
							if (idStructure == null) {
69
								// Dans le cas, où nous demandons toutes les relations Structure à Personne et qu'il n'y en a pas, nous retournons un message d'information
70
								Information info = new Information("liste_structure_a_personne");
71
								info.setMessage("Aucun personnel");
72
								r.rafraichir(info);
73
							} else {
74
								GWT.log(url, null);
75
								if (response.getText().length() == 0) {
76
									GWT.log("\tLa réponse a une taille de 0", null);
77
								}
78
								if (response.getText() == null) {
79
									GWT.log("\tLa réponse vaul null", null);
80
								}
81
							}
82
						}
83
					}
84
				}
85
			});
86
		} catch (RequestException e) {
231 jp_milcent 87
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
88
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (selection)", e);
89
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
208 jp_milcent 90
		}
91
	}
231 jp_milcent 92
 
93
	public void ajouter(final Rafraichissable vue, String utilisateurId, String structureId, StructureAPersonne personnel) {
94
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
95
		SERVICE_NOM + "/";
96
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url);
97
 
98
		String postDonnees = "cmhl_ce_modifier_par=" + utilisateurId +
99
			"&csap_id_structure=" + structureId +
100
			"&csap_id_personne=" + URL.encodeComponent(personnel.getIdPersonne()) +
101
			"&csap_id_role=" + URL.encodeComponent(personnel.getIdRole()) +
102
			"&csap_ce_truk_fonction=" + URL.encodeComponent(personnel.getFonction()) +
103
			"&csap_service=" + URL.encodeComponent(personnel.getService()) +
104
			"&csap_ce_truk_statut=" + URL.encodeComponent(personnel.getStatut()) +
105
			"&csap_mark_contact=" + URL.encodeComponent(personnel.getContact()) +
106
			"&csap_bota_travail_hebdo_tps=" + URL.encodeComponent(personnel.getBotaTravailHebdoTps()) +
107
			"&cp_prenom=" + URL.encodeComponent(personnel.getPrenom()) +
108
			"&cp_nom=" + URL.encodeComponent(personnel.getNom()) +
109
			"&cp_truk_telephone=" + URL.encodeComponent(personnel.getTelephone()) +
110
			"&cp_truk_fax=" + URL.encodeComponent(personnel.getFax()) +
111
			"&cp_truk_courriel=" + URL.encodeComponent(personnel.getCourriel()) +
112
			"&cp_ce_truk_specialite=" + URL.encodeComponent(personnel.getSpecialite()) +
113
			"";
114
 
115
		try {
116
			rb.sendRequest(postDonnees, new RequestCallback() {
117
 
118
				public void onError(Request request, Throwable exception) {
119
					// Gestion des exceptions déclenchées par l'exécution de la requête
120
					GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (ajout)", exception);
121
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
122
				}
123
 
124
				public void onErrorHTTP(Request request, Response reponse) {
125
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
126
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
127
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
128
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
129
				}
130
 
131
				public void onResponseReceived(Request request, Response response) {
132
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
133
					if (response.getStatusCode() != 200) {
134
						onErrorHTTP(request, response);
135
					} else {
136
						if (response.getText().length() != 0 && response.getText() != null) {
137
							final JSONValue responseValue = JSONParser.parse(response.getText());
138
 
139
							// Si la requête est un succès, reception d'une chaine
140
							if (responseValue.isString() != null) {
141
								Information info = new Information("ajout_structure_a_personne", responseValue.isString().stringValue());
142
								vue.rafraichir(info);
143
							} else {
144
								GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
145
							}
146
						} else {
147
							GWT.log(url, null);
148
							if (response.getText().length() == 0) {
149
								GWT.log("\tLa réponse a une taille de 0", null);
150
							}
151
							if (response.getText() == null) {
152
								GWT.log("\tLa réponse vaul null", null);
153
							}
154
						}
155
					}
156
				}
157
 
158
			}) ;
159
		} catch (RequestException e) {
160
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
161
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (ajout)", e);
162
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
163
		}
164
	}
165
 
166
	public void modifier(final Rafraichissable vue, String utilisateurId, StructureAPersonne personnel) {
167
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
168
		SERVICE_NOM + "/" +
169
		personnel.getIdStructure() + "/" +
170
		personnel.getIdPersonne() + "/" +
171
		personnel.getIdRole()
172
		;
173
 
174
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url);
175
 
176
		String postDonnees = 	"cmhl_ce_modifier_par=" + utilisateurId +
177
			"&csap_id_structure=" + URL.encodeComponent(personnel.getIdStructure()) +
178
			"&csap_id_personne=" + URL.encodeComponent(personnel.getIdPersonne()) +
179
			"&csap_id_role=" + URL.encodeComponent(personnel.getIdRole()) +
180
			"&csap_ce_truk_fonction=" + URL.encodeComponent(personnel.getFonction()) +
181
			"&csap_service=" + URL.encodeComponent(personnel.getService()) +
182
			"&csap_ce_truk_statut=" + URL.encodeComponent(personnel.getStatut()) +
183
			"&csap_mark_contact=" + URL.encodeComponent(personnel.getContact()) +
184
			"&csap_bota_travail_hebdo_tps=" + URL.encodeComponent(personnel.getBotaTravailHebdoTps()) +
185
			"&cp_prenom=" + URL.encodeComponent(personnel.getPrenom()) +
186
			"&cp_nom=" + URL.encodeComponent(personnel.getNom()) +
187
			"&cp_truk_telephone=" + URL.encodeComponent(personnel.getTelephone()) +
188
			"&cp_truk_fax=" + URL.encodeComponent(personnel.getFax()) +
189
			"&cp_truk_courriel=" + URL.encodeComponent(personnel.getCourriel()) +
190
			"&cp_ce_truk_specialite=" + URL.encodeComponent(personnel.getSpecialite()) +
191
			"";
192
 
193
		try {
194
			rb.sendRequest(postDonnees, new RequestCallback() {
195
 
196
				public void onError(Request request, Throwable exception) {
197
					// Gestion des exceptions déclenchées par l'exécution de la requête
198
					GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (modif)", exception);
199
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
200
				}
201
 
202
				public void onErrorHTTP(Request request, Response reponse) {
203
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
204
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
205
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
206
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
207
				}
208
 
209
				public void onResponseReceived(Request request, Response response) {
210
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
211
					if (response.getStatusCode() != 200) {
212
						onErrorHTTP(request, response);
213
					} else {
214
						if (response.getText().length() != 0 && response.getText() != null) {
215
							final JSONValue responseValue = JSONParser.parse(response.getText());
216
 
217
							// Si la requête est un succès, reception d'une chaine
218
							if (responseValue.isString() != null) {
219
								Information info = new Information("modif_structure_a_personne", responseValue.isString().stringValue());
220
								vue.rafraichir(info);
221
							} else {
222
								GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
223
							}
224
						} else {
225
							GWT.log(url, null);
226
							if (response.getText().length() == 0) {
227
								GWT.log("\tLa réponse a une taille de 0", null);
228
							}
229
							if (response.getText() == null) {
230
								GWT.log("\tLa réponse vaul null", null);
231
							}
232
						}
233
					}
234
				}
235
 
236
			}) ;
237
		} catch (RequestException e) {
238
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
239
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (modif)", e);
240
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
241
		}
242
	}
243
 
244
	public void supprimer(final Rafraichissable vue, String utilisateurId, String idStrAPer) {
245
		// Ajout des paramètres et données à supprimer dans l'URL
246
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
247
			SERVICE_NOM + "/" +
248
			utilisateurId + "/" +
249
			idStrAPer +
250
			"";
251
 
252
		// DELETE n'étant pas disponible comme méthode HTTP, nous utilisons POST avec le paramètre action=DELETE
253
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url);
254
		String postDonnees = "action=DELETE";
255
 
256
		try {
257
			rb.sendRequest(postDonnees, new RequestCallback() {
258
 
259
				public void onError(Request request, Throwable exception) {
260
					// Gestion des exceptions déclenchées par l'exécution de la requête
261
					GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (suppression)", exception);
262
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
263
				}
264
 
265
				public void onErrorHTTP(Request request, Response reponse) {
266
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
267
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
268
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
269
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
270
				}
271
 
272
				public void onResponseReceived(Request request, Response response) {
273
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
274
					if (response.getStatusCode() != 200) {
275
						onErrorHTTP(request, response);
276
					} else {
277
						if (response.getText().length() != 0 && response.getText() != null) {
278
							final JSONValue responseValue = JSONParser.parse(response.getText());
279
 
280
							// Si la requête est un succès, reception d'une chaine
281
							if (responseValue.isString() != null) {
282
								Information info = new Information("suppression_structure_a_personne", responseValue.isString().stringValue());
283
								vue.rafraichir(info);
284
							} else {
285
								GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
286
							}
287
						} else {
288
							GWT.log(url, null);
289
							if (response.getText().length() == 0) {
290
								GWT.log("\tLa réponse a une taille de 0", null);
291
							}
292
							if (response.getText() == null) {
293
								GWT.log("\tLa réponse vaul null", null);
294
							}
295
						}
296
					}
297
				}
298
 
299
			}) ;
300
		} catch (RequestException e) {
301
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
302
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (suppression)", e);
303
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
304
		}
305
 
306
	}
208 jp_milcent 307
}