Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
2 aperonnet 1
package org.tela_botanica.client.modeles;
2
 
3
/**
4
 * Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour
5
 *
6
 */
7
 
12 david 8
import org.tela_botanica.client.CarnetEnLigneModele;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
2 aperonnet 10
 
33 jpm 11
import com.google.gwt.http.client.Request;
12
import com.google.gwt.http.client.RequestBuilder;
13
import com.google.gwt.http.client.RequestCallback;
14
import com.google.gwt.http.client.RequestException;
15
import com.google.gwt.http.client.Response;
2 aperonnet 16
import com.google.gwt.json.client.JSONArray;
17
import com.google.gwt.json.client.JSONBoolean;
18
import com.google.gwt.json.client.JSONParser;
19
import com.google.gwt.json.client.JSONString;
20
import com.google.gwt.json.client.JSONValue;
21
 
22
public class UtilisateurAsynchroneDAO {
23
 
12 david 24
 
25
 
26
 
2 aperonnet 27
	/**
12 david 28
	 * Le modèle associé au DAO
2 aperonnet 29
	 */
12 david 30
	private CarnetEnLigneModele carnetEnLigneModele = null ;
31
 
32
	/**
33
	 * Constructeur
34
	 */
35
 
36
	public UtilisateurAsynchroneDAO(CarnetEnLigneModele carnetEnLigneModele) {
37
 
38
		this.carnetEnLigneModele=carnetEnLigneModele;
39
 
2 aperonnet 40
	}
12 david 41
 
42
 
43
 
44
 
2 aperonnet 45
	/**
12 david 46
	 * Methode de classe d'appel du service gestion identification
47
	 * @param baseURL : URL du service
48
	 * @param retour : methode appelle en retour d'appel
2 aperonnet 49
	 */
12 david 50
 
51
	public void getEtatUtilisateur(final Rafraichissable r) {
5 aperonnet 52
 
2 aperonnet 53
		// Recherche identifiant utilisateur identifie
54
 
140 aurelien 55
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,Configuration.getServiceBaseUrl() + "/User/") ;
33 jpm 56
 
57
		try {
58
 
59
			rb.sendRequest(null, new RequestCallback() {
2 aperonnet 60
 
33 jpm 61
				public void onError(Request request, Throwable exception) {
62
					// TODO Auto-generated method stub
63
 
2 aperonnet 64
				}
65
 
33 jpm 66
				public void onResponseReceived(Request request,
67
						Response response) {
68
 
69
					JSONValue jsonValue = JSONParser.parse(response.getText());
70
					JSONArray jsonArray;
71
					if ((jsonArray = jsonValue.isArray()) != null) {
72
						String identifiant = ((JSONString) jsonArray.get(0))
73
								.stringValue(); // Identifiant utilisateur ou
74
												// identifiant de session si non
75
												// identifie
76
						boolean identifie = ((JSONBoolean) jsonArray.get(1))
77
								.booleanValue(); // Drapeau leve si utilisateur
78
													// deja identifie
140 aurelien 79
						boolean isAdmin = ((JSONBoolean) jsonArray.get(2))
80
						.booleanValue(); // Drapeau leve si utilisateur
81
											// est admin
82
 
83
						r.rafraichir(new Utilisateur(identifiant, identifie, isAdmin),true);
33 jpm 84
					}
85
				}
86
			}) ;
87
 
88
 
89
		} catch (RequestException e) {
90
 
91
 
92
		}
2 aperonnet 93
	}
94
 
95
 
12 david 96
 
97
	public void deconnecterUtilisateur(final Rafraichissable r, String user) {
98
 
140 aurelien 99
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl()+ "/User/" + user) ;
33 jpm 100
 
101
		try {
102
 
103
			rb.sendRequest(null, new RequestCallback() {
2 aperonnet 104
 
33 jpm 105
				public void onError(Request request, Throwable exception) {
106
					// TODO Auto-generated method stub
107
 
108
				}
109
 
110
				public void onResponseReceived(Request request,
111
						Response response) {
112
 
113
					JSONValue jsonValue = JSONParser.parse(response.getText());
114
					JSONArray jsonArray;
115
					if ((jsonArray = jsonValue.isArray()) != null) {
116
						String identifiant = ((JSONString) jsonArray.get(0))
117
						.stringValue(); // Identifiant utilisateur ou
118
										// identifiant de session si non
119
										// identifie
120
						boolean identifie = ((JSONBoolean) jsonArray.get(1))
121
						.booleanValue(); // Drapeau leve si utilisateur
122
											// deja identifie
12 david 123
 
33 jpm 124
					r.rafraichir(new Utilisateur(identifiant, identifie),true);
125
					}
126
				}
127
 
128
			}) ;
129
 
130
		} catch (RequestException e) {
131
 
132
 
133
		}
2 aperonnet 134
	}
135
 
136
 
12 david 137
 
138
	public void connecteUtilisateur (final Rafraichissable r, String login, String password) {
33 jpm 139
 
143 aurelien 140
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,Configuration.getServiceBaseUrl() + "/User/" + login + "/" + password) ;
33 jpm 141
 
142
		try {
143
 
144
			rb.sendRequest(null, new RequestCallback() {
12 david 145
 
33 jpm 146
				public void onError(Request request, Throwable exception) {
147
					// TODO Auto-generated method stub
148
 
149
				}
2 aperonnet 150
 
33 jpm 151
				public void onResponseReceived(Request request,
152
						Response response) {
153
 
154
					JSONValue jsonValue = JSONParser.parse(response.getText());
155
					JSONArray jsonArray;
156
 
157
					if ((jsonArray = jsonValue.isArray()) != null) {
158
						String identifiant = ((JSONString) jsonArray.get(0))
159
						.stringValue(); // Identifiant utilisateur ou
160
										// identifiant de session si non
161
										// identifie
162
						boolean identifie = ((JSONBoolean) jsonArray.get(1))
163
						.booleanValue(); // Drapeau leve si utilisateur
164
											// deja identifie
143 aurelien 165
						boolean isAdmin = ((JSONBoolean) jsonArray.get(2))
166
						.booleanValue(); // Drapeau leve si utilisateur
167
											// est admin
12 david 168
 
2 aperonnet 169
 
143 aurelien 170
						r.rafraichir(new Utilisateur(identifiant, identifie, isAdmin),true);
33 jpm 171
					}
172
				}
173
 
174
 
175
			}) ;
176
 
177
		} catch (RequestException e) {
178
 
179
			e.printStackTrace() ;
180
		}
2 aperonnet 181
	}
182
 
12 david 183
 
184
 
185
 
2 aperonnet 186
}