Subversion Repositories eFlore/Applications.coel

Rev

Go to most recent revision | Details | 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
 
602 jp_milcent 22
	public void selectionner(final Rafraichissable vueARafraichir, String idUtilisateur, final String idStructure, final String idRole) {
208 jp_milcent 23
		// Ajout des paramètres et données à selectionner dans l'URL
24
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
245 jp_milcent 25
			SERVICE_NOM + "/" +
26
			(idStructure == null ? "*" : idStructure) + "/" +
27
			(idRole == null ? "*" : idRole) + "/" +
208 jp_milcent 28
			"";
264 jp_milcent 29
		GWT.log("StructureAPersonne : "+url, null);
208 jp_milcent 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
602 jp_milcent 63
								vueARafraichir.rafraichir(info);
208 jp_milcent 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");
602 jp_milcent 72
								vueARafraichir.rafraichir(info);
208 jp_milcent 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
 
602 jp_milcent 98
		String postDonneesEncodees = construirePost(utilisateurId, structureId, personnel);
231 jp_milcent 99
 
100
		try {
602 jp_milcent 101
			rb.sendRequest(postDonneesEncodees, new RequestCallback() {
231 jp_milcent 102
 
103
				public void onError(Request request, Throwable exception) {
104
					// Gestion des exceptions déclenchées par l'exécution de la requête
105
					GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (ajout)", exception);
106
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
107
				}
108
 
109
				public void onErrorHTTP(Request request, Response reponse) {
110
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
111
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
112
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
113
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
114
				}
115
 
116
				public void onResponseReceived(Request request, Response response) {
117
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
118
					if (response.getStatusCode() != 200) {
119
						onErrorHTTP(request, response);
120
					} else {
121
						if (response.getText().length() != 0 && response.getText() != null) {
122
							final JSONValue responseValue = JSONParser.parse(response.getText());
123
 
124
							// Si la requête est un succès, reception d'une chaine
125
							if (responseValue.isString() != null) {
126
								Information info = new Information("ajout_structure_a_personne", responseValue.isString().stringValue());
127
								vue.rafraichir(info);
128
							} else {
129
								GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
130
							}
131
						} else {
132
							GWT.log(url, null);
133
							if (response.getText().length() == 0) {
134
								GWT.log("\tLa réponse a une taille de 0", null);
135
							}
136
							if (response.getText() == null) {
137
								GWT.log("\tLa réponse vaul null", null);
138
							}
139
						}
140
					}
141
				}
142
 
143
			}) ;
144
		} catch (RequestException e) {
145
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
146
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (ajout)", e);
147
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
148
		}
149
	}
150
 
151
	public void modifier(final Rafraichissable vue, String utilisateurId, StructureAPersonne personnel) {
152
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
153
		SERVICE_NOM + "/" +
154
		personnel.getIdStructure() + "/" +
155
		personnel.getIdPersonne() + "/" +
156
		personnel.getIdRole()
157
		;
158
 
159
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url);
160
 
602 jp_milcent 161
		String postDonneesEncodees = construirePost(utilisateurId, null, personnel);
231 jp_milcent 162
 
163
		try {
602 jp_milcent 164
			rb.sendRequest(postDonneesEncodees, new RequestCallback() {
231 jp_milcent 165
 
166
				public void onError(Request request, Throwable exception) {
167
					// Gestion des exceptions déclenchées par l'exécution de la requête
168
					GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (modif)", exception);
169
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
170
				}
171
 
172
				public void onErrorHTTP(Request request, Response reponse) {
173
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
174
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
175
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
176
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
177
				}
178
 
179
				public void onResponseReceived(Request request, Response response) {
180
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
181
					if (response.getStatusCode() != 200) {
182
						onErrorHTTP(request, response);
183
					} else {
184
						if (response.getText().length() != 0 && response.getText() != null) {
185
							final JSONValue responseValue = JSONParser.parse(response.getText());
186
 
187
							// Si la requête est un succès, reception d'une chaine
188
							if (responseValue.isString() != null) {
189
								Information info = new Information("modif_structure_a_personne", responseValue.isString().stringValue());
190
								vue.rafraichir(info);
191
							} else {
192
								GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
193
							}
194
						} else {
195
							GWT.log(url, null);
196
							if (response.getText().length() == 0) {
197
								GWT.log("\tLa réponse a une taille de 0", null);
198
							}
199
							if (response.getText() == null) {
200
								GWT.log("\tLa réponse vaul null", null);
201
							}
202
						}
203
					}
204
				}
205
 
206
			}) ;
207
		} catch (RequestException e) {
208
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
209
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (modif)", e);
210
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
211
		}
212
	}
213
 
214
	public void supprimer(final Rafraichissable vue, String utilisateurId, String idStrAPer) {
215
		// Ajout des paramètres et données à supprimer dans l'URL
216
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
217
			SERVICE_NOM + "/" +
218
			utilisateurId + "/" +
219
			idStrAPer +
220
			"";
221
 
222
		// DELETE n'étant pas disponible comme méthode HTTP, nous utilisons POST avec le paramètre action=DELETE
223
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url);
224
		String postDonnees = "action=DELETE";
225
 
226
		try {
227
			rb.sendRequest(postDonnees, new RequestCallback() {
228
 
229
				public void onError(Request request, Throwable exception) {
230
					// Gestion des exceptions déclenchées par l'exécution de la requête
231
					GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (suppression)", exception);
232
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
233
				}
234
 
235
				public void onErrorHTTP(Request request, Response reponse) {
236
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
237
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
238
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
239
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
240
				}
241
 
242
				public void onResponseReceived(Request request, Response response) {
243
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
244
					if (response.getStatusCode() != 200) {
245
						onErrorHTTP(request, response);
246
					} else {
247
						if (response.getText().length() != 0 && response.getText() != null) {
248
							final JSONValue responseValue = JSONParser.parse(response.getText());
249
 
250
							// Si la requête est un succès, reception d'une chaine
251
							if (responseValue.isString() != null) {
252
								Information info = new Information("suppression_structure_a_personne", responseValue.isString().stringValue());
253
								vue.rafraichir(info);
254
							} else {
255
								GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
256
							}
257
						} else {
258
							GWT.log(url, null);
259
							if (response.getText().length() == 0) {
260
								GWT.log("\tLa réponse a une taille de 0", null);
261
							}
262
							if (response.getText() == null) {
263
								GWT.log("\tLa réponse vaul null", null);
264
							}
265
						}
266
					}
267
				}
268
 
269
			}) ;
270
		} catch (RequestException e) {
271
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
272
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (suppression)", e);
273
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
274
		}
275
 
276
	}
602 jp_milcent 277
 
278
	private String construirePost(String utilisateurId, String structureId, StructureAPersonne personnel) {
279
		String postDonnees = "cmhl_ce_modifier_par=" + URL.encodeComponent(utilisateurId);
280
		if (structureId != null) {
281
			postDonnees += "&csap_id_structure=" + structureId;
282
		}
283
		postDonnees += "&csap_id_personne=" + URL.encodeComponent(personnel.getIdPersonne()) +
284
			"&csap_id_role=" + URL.encodeComponent(personnel.getIdRole()) +
285
			"&csap_ce_truk_fonction=" + URL.encodeComponent(personnel.getFonction()) +
286
			"&csap_service=" + URL.encodeComponent(personnel.getService()) +
287
			"&csap_ce_truk_statut=" + URL.encodeComponent(personnel.getStatut()) +
288
			"&csap_mark_contact=" + URL.encodeComponent(personnel.getContact()) +
289
			"&csap_bota_travail_hebdo_tps=" + URL.encodeComponent(personnel.getBotaTravailHebdoTps()) +
290
			"&cp_prenom=" + URL.encodeComponent(personnel.getPrenom()) +
291
			"&cp_nom=" + URL.encodeComponent(personnel.getNom()) +
292
			"&cp_truk_telephone=" + URL.encodeComponent(personnel.getTelephone()) +
293
			"&cp_truk_courriel=" + URL.encodeComponent(personnel.getCourriel()) +
294
			"&cp_ce_truk_specialite=" + URL.encodeComponent(personnel.getSpecialite()) +
295
			"";
296
		return postDonnees;
297
	}
208 jp_milcent 298
}