Subversion Repositories eFlore/Applications.coel

Rev

Rev 264 | 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() +
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
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_ce_truk_fonction=" + URL.encodeComponent(personnel.getFonction()) +
178
			"&csap_service=" + URL.encodeComponent(personnel.getService()) +
179
			"&csap_ce_truk_statut=" + URL.encodeComponent(personnel.getStatut()) +
180
			"&csap_mark_contact=" + URL.encodeComponent(personnel.getContact()) +
181
			"&csap_bota_travail_hebdo_tps=" + URL.encodeComponent(personnel.getBotaTravailHebdoTps()) +
182
			"&cp_prenom=" + URL.encodeComponent(personnel.getPrenom()) +
183
			"&cp_nom=" + URL.encodeComponent(personnel.getNom()) +
184
			"&cp_truk_telephone=" + URL.encodeComponent(personnel.getTelephone()) +
185
			"&cp_truk_fax=" + URL.encodeComponent(personnel.getFax()) +
186
			"&cp_truk_courriel=" + URL.encodeComponent(personnel.getCourriel()) +
187
			"&cp_ce_truk_specialite=" + URL.encodeComponent(personnel.getSpecialite()) +
188
			"";
189
 
190
		try {
191
			rb.sendRequest(postDonnees, new RequestCallback() {
192
 
193
				public void onError(Request request, Throwable exception) {
194
					// Gestion des exceptions déclenchées par l'exécution de la requête
195
					GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (modif)", exception);
196
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
197
				}
198
 
199
				public void onErrorHTTP(Request request, Response reponse) {
200
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
201
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
202
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
203
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
204
				}
205
 
206
				public void onResponseReceived(Request request, Response response) {
207
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
208
					if (response.getStatusCode() != 200) {
209
						onErrorHTTP(request, response);
210
					} else {
211
						if (response.getText().length() != 0 && response.getText() != null) {
212
							final JSONValue responseValue = JSONParser.parse(response.getText());
213
 
214
							// Si la requête est un succès, reception d'une chaine
215
							if (responseValue.isString() != null) {
216
								Information info = new Information("modif_structure_a_personne", responseValue.isString().stringValue());
217
								vue.rafraichir(info);
218
							} else {
219
								GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
220
							}
221
						} else {
222
							GWT.log(url, null);
223
							if (response.getText().length() == 0) {
224
								GWT.log("\tLa réponse a une taille de 0", null);
225
							}
226
							if (response.getText() == null) {
227
								GWT.log("\tLa réponse vaul null", null);
228
							}
229
						}
230
					}
231
				}
232
 
233
			}) ;
234
		} catch (RequestException e) {
235
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
236
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (modif)", e);
237
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
238
		}
239
	}
240
 
241
	public void supprimer(final Rafraichissable vue, String utilisateurId, String idStrAPer) {
242
		// Ajout des paramètres et données à supprimer dans l'URL
243
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
244
			SERVICE_NOM + "/" +
245
			utilisateurId + "/" +
246
			idStrAPer +
247
			"";
248
 
249
		// DELETE n'étant pas disponible comme méthode HTTP, nous utilisons POST avec le paramètre action=DELETE
250
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url);
251
		String postDonnees = "action=DELETE";
252
 
253
		try {
254
			rb.sendRequest(postDonnees, new RequestCallback() {
255
 
256
				public void onError(Request request, Throwable exception) {
257
					// Gestion des exceptions déclenchées par l'exécution de la requête
258
					GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (suppression)", exception);
259
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
260
				}
261
 
262
				public void onErrorHTTP(Request request, Response reponse) {
263
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
264
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
265
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
266
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
267
				}
268
 
269
				public void onResponseReceived(Request request, Response response) {
270
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
271
					if (response.getStatusCode() != 200) {
272
						onErrorHTTP(request, response);
273
					} else {
274
						if (response.getText().length() != 0 && response.getText() != null) {
275
							final JSONValue responseValue = JSONParser.parse(response.getText());
276
 
277
							// Si la requête est un succès, reception d'une chaine
278
							if (responseValue.isString() != null) {
279
								Information info = new Information("suppression_structure_a_personne", responseValue.isString().stringValue());
280
								vue.rafraichir(info);
281
							} else {
282
								GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
283
							}
284
						} else {
285
							GWT.log(url, null);
286
							if (response.getText().length() == 0) {
287
								GWT.log("\tLa réponse a une taille de 0", null);
288
							}
289
							if (response.getText() == null) {
290
								GWT.log("\tLa réponse vaul null", null);
291
							}
292
						}
293
					}
294
				}
295
 
296
			}) ;
297
		} catch (RequestException e) {
298
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
299
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (suppression)", e);
300
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
301
		}
302
 
303
	}
208 jp_milcent 304
}