Subversion Repositories eFlore/Applications.coel

Rev

Rev 769 | Rev 897 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 769 Rev 772
Line 1... Line 1...
1
package org.tela_botanica.client.modeles;
1
package org.tela_botanica.client.modeles;
Line 2... Line 2...
2
 
2
 
-
 
3
import org.tela_botanica.client.RegistreId;
-
 
4
import org.tela_botanica.client.http.JsonRestRequestBuilder;
3
import org.tela_botanica.client.RegistreId;
5
import org.tela_botanica.client.http.JsonRestRequestCallback;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
Line 5... Line 7...
5
import org.tela_botanica.client.util.UtilDAO;
7
import org.tela_botanica.client.util.UtilDAO;
6
 
8
 
Line 24... Line 26...
24
 */
26
 */
25
public class UtilisateurAsyncDao {
27
public class UtilisateurAsyncDao {
26
	private static final String SERVICE_NOM = "CoelUtilisateur";
28
	private static final String SERVICE_NOM = "CoelUtilisateur";
Line 27... Line 29...
27
	
29
	
28
	private Utilisateur utilisateur = null;
-
 
29
	private String urlServiceBase = null;
30
	private Utilisateur utilisateur = null;
Line 30... Line 31...
30
	private Rafraichissable vueARafraichir = null;
31
	private Rafraichissable vueARafraichir = null;
31
	
32
	
32
	/**
33
	/**
33
	 * Constructeur
34
	 * Constructeur
34
	 * @param retour : méthode appellée en retour d'appel. 
35
	 * @param retour : méthode appellée en retour d'appel. 
35
	 */
36
	 */
36
	public UtilisateurAsyncDao(Rafraichissable r) {
-
 
37
		vueARafraichir = r;
37
	public UtilisateurAsyncDao(Rafraichissable vueARafraichirCourrante) {
38
		urlServiceBase = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
38
		vueARafraichir = vueARafraichirCourrante;
Line 39... Line 39...
39
		utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
39
		utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
40
	}
40
	}
41
		
41
		
42
	/**
42
	/**
43
	 * Méthode de classe d'appel du service des gestion d'identification. 
43
	 * Méthode de classe d'appel du service des gestion d'identification. 
44
	 */
44
	 */
45
	public void getEtatUtilisateur() {
45
	public void getEtatUtilisateur() {
46
		// Recherche identifiant utilisateur identifie
46
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM);
47
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+SERVICE_NOM+"/") ;
-
 
-
 
47
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
48
		try {
48
			@Override
49
			rb.sendRequest(null, new RequestCallback() {
49
			public void surReponse(JSONValue responseValue) {
-
 
50
				if (responseValue.isArray() != null) {
-
 
51
					final JSONArray reponse = responseValue.isArray();
-
 
52
					// Identifiant utilisateur ou identifiant de session si non identifié
-
 
53
					String login = ((JSONString) reponse.get(0)).stringValue();
-
 
54
					// Drapeau leve si utilisateur deja identifié
-
 
55
					boolean identifie = ((JSONBoolean) reponse.get(1)).booleanValue();
50
 
56
					utilisateur.setIdentification(identifie);
51
				public void onError(Request request, Throwable exception) {
-
 
52
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
-
 
53
				}
-
 
54
 
-
 
55
				public void onResponseReceived(Request request, Response response) {
-
 
56
					JSONValue jsonValue = JSONParser.parse(response.getText());
-
 
57
					JSONArray jsonArray;
-
 
58
					if ((jsonArray = jsonValue.isArray()) != null) {
-
 
59
						// Identifiant utilisateur ou identifiant de session si non identifié
-
 
60
						String login = ((JSONString) jsonArray.get(0)).stringValue();
-
 
61
						// Drapeau leve si utilisateur deja identifié
-
 
62
						boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
-
 
63
						utilisateur.setIdentification(identifie);
-
 
64
						utilisateur.setLogin(login);
57
					utilisateur.setLogin(login);
65
						vueARafraichir.rafraichir(utilisateur);
58
					vueARafraichir.rafraichir(utilisateur);
66
					}			
-
 
67
				}			
-
 
68
			}) ;
-
 
69
		} catch (RequestException e) {
59
				}
Line 70... Line 60...
70
			e.printStackTrace();
60
			}
71
		}
61
		});
72
	}
62
	}
73
 
63
 
74
	/**
64
	/**
-
 
65
	 * Méthode déconnectant un utilisateur de l'application. 
-
 
66
	 * @param identifiant de l'utilisateur à déconnecter.
75
	 * Méthode déconnectant un utilisateur de l'application. 
67
	 */
-
 
68
	public void deconnecterUtilisateur() {
76
	 * @param identifiant de l'utilisateur à déconnecter.
69
		String[] parametres = {utilisateur.getId()};
77
	 */
70
		
-
 
71
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
-
 
72
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
-
 
73
			@Override
-
 
74
			public void surReponse(JSONValue responseValue) {
-
 
75
				if (responseValue.isArray() != null) {
-
 
76
					final JSONArray reponse = responseValue.isArray();
78
	public void deconnecterUtilisateur() {
77
					// Identifiant utilisateur ou identifiant de session si non identifié
-
 
78
					String id = ((JSONString) reponse.get(0)).stringValue();
79
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+SERVICE_NOM+"/"+utilisateur.getId()) ;
79
					// Drapeau levé si l'utilisateur est déjà identifié
-
 
80
					boolean identifie = ((JSONBoolean) reponse.get(1)).booleanValue();
80
		try {
81
					
-
 
82
					// Nous réinitialisons l'utilisateur
81
			rb.sendRequest(null, new RequestCallback() {
83
					utilisateur = new Utilisateur(id, identifie);
82
 
-
 
83
				public void onError(Request request, Throwable exception) {
-
 
84
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
-
 
85
				}
-
 
86
 
-
 
87
				public void onResponseReceived(Request request, Response response) {
-
 
88
					JSONValue jsonValue = JSONParser.parse(response.getText());
-
 
89
					JSONArray jsonArray;
-
 
90
					if ((jsonArray = jsonValue.isArray()) != null) {
-
 
91
						// Identifiant utilisateur ou identifiant de session si non identifié
-
 
92
						String id = ((JSONString) jsonArray.get(0)).stringValue();
-
 
93
						// Drapeau levé si l'utilisateur est déjà identifié
-
 
94
						boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
-
 
95
						
-
 
96
						// Nous réinitialisons l'utilisateur
-
 
97
						utilisateur = new Utilisateur(id, identifie);
-
 
98
						
84
					
99
						GWT.log(utilisateur.toString(), null);
85
					GWT.log(utilisateur.toString(), null);
100
						vueARafraichir.rafraichir(utilisateur);
-
 
101
					}				
-
 
102
				}			
-
 
103
			}) ;
86
					vueARafraichir.rafraichir(utilisateur);
Line 104... Line 87...
104
		} catch (RequestException e) {
87
				}
105
			e.printStackTrace();
88
			}
106
		}
89
		});
107
	}
90
	}
108
	
91
	
109
	/**
-
 
110
	 * Méthode connectant un utilisateur à l'application. 
-
 
111
	 * @param Utilisateur l'utilisateur courant.
92
	/**
Line 112... Line 93...
112
	 */
93
	 * Méthode connectant un utilisateur à l'application. 
113
	public void connecterUtilisateur () {
-
 
114
		String[] parametres = new String[2];
94
	 * @param Utilisateur l'utilisateur courant.
115
		parametres[0] = utilisateur.getLogin();
-
 
116
		parametres[1] = utilisateur.getMotDePasse();
-
 
117
		
-
 
118
		RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
-
 
119
		try {
95
	 */
120
			rb.sendRequest(null, new RequestCallback() {
-
 
121
 
96
	public void connecterUtilisateur() {
122
				public void onError(Request request, Throwable exception) {
-
 
123
					GWT.log("Erreur à l'exécution du service " + SERVICE_NOM + " (selection)", exception);
-
 
124
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
-
 
125
				}
-
 
126
				
-
 
127
				public void onErrorHTTP(Request request, Response reponse) {
-
 
128
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
-
 
129
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
97
		String[] parametres = {utilisateur.getLogin(), utilisateur.getMotDePasse()};
130
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
-
 
131
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
-
 
132
				}
-
 
133
				
-
 
134
				public void onResponseReceived(Request request, Response response) {
98
		
135
					if (response.getStatusCode() != 200) {
99
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
136
						onErrorHTTP(request, response);
100
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
137
					} else {
101
			@Override
138
						JSONValue jsonValue = JSONParser.parse(response.getText());
102
			public void surReponse(JSONValue responseValue) {
139
						JSONArray jsonArray;
103
				if (responseValue.isArray() != null) {
140
						if ((jsonArray = jsonValue.isArray()) != null) {
104
					final JSONArray reponse = responseValue.isArray();
141
							if (jsonArray.size() > 0) {
105
					if (reponse.size() > 0) {
142
								// Identifiant de l'utilisateur ou identifiant de session si non identifié
106
						// Identifiant de l'utilisateur ou identifiant de session si non identifié
143
								utilisateur.setId(((JSONString) jsonArray.get(0)).stringValue());
107
						utilisateur.setId(((JSONString) reponse.get(0)).stringValue());
144
							
108
					
145
								// Drapeau levé si l'utilisateur est déjà identifié
109
						// Drapeau levé si l'utilisateur est déjà identifié
146
								GWT.log(jsonArray.toString(), null);
110
						GWT.log(reponse.toString(), null);
147
								utilisateur.setIdentification(((JSONBoolean) jsonArray.get(1)).booleanValue());
111
						utilisateur.setIdentification(((JSONBoolean) reponse.get(1)).booleanValue());
148
							
-
 
149
								// Plus de deux valeurs, l'utilisateur est identifié nous récupérons des données supplémentaires
-
 
150
								if (jsonArray.size() > 2) {
-
 
151
									// Nom complet de l'utilisateur
-
 
152
									if (jsonArray.get(2).isString() != null) {
-
 
153
										utilisateur.setNomComplet(((JSONString) jsonArray.get(2)).stringValue());
-
 
154
									}
-
 
155
									// Prénom de l'utilisateur
-
 
156
									if (jsonArray.get(3).isString() != null) {
-
 
157
										utilisateur.setPrenom(((JSONString) jsonArray.get(3)).stringValue());
-
 
158
									}
-
 
159
									// Nom de l'utilisateur
-
 
160
									if (jsonArray.get(4).isString() != null) {
112
					
-
 
113
						// Plus de deux valeurs, l'utilisateur est identifié nous récupérons des données supplémentaires
-
 
114
						if (reponse.size() > 2) {
-
 
115
							// Nom complet de l'utilisateur
-
 
116
							if (reponse.get(2).isString() != null) {
-
 
117
								utilisateur.setNomComplet(((JSONString) reponse.get(2)).stringValue());
-
 
118
							}
-
 
119
							// Prénom de l'utilisateur
-
 
120
							if (reponse.get(3).isString() != null) {
-
 
121
								utilisateur.setPrenom(((JSONString) reponse.get(3)).stringValue());
161
										utilisateur.setNom(((JSONString) jsonArray.get(4)).stringValue());
122
							}
-
 
123
							// Nom de l'utilisateur
162
									}
124
							if (reponse.get(4).isString() != null) {
163
									GWT.log(utilisateur.toString(), null);
125
								utilisateur.setNom(((JSONString) reponse.get(4)).stringValue());
164
								}
126
							}
165
								vueARafraichir.rafraichir(utilisateur);
-
 
166
							}
-
 
167
						}
127
							GWT.log(utilisateur.toString(), null);
168
					}
128
						}
169
				}
129
						vueARafraichir.rafraichir(utilisateur);
170
			}) ;
130
					}