Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Details | 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;
937 aurelien 18
import com.google.gwt.json.client.JSONObject;
2 aperonnet 19
import com.google.gwt.json.client.JSONParser;
20
import com.google.gwt.json.client.JSONString;
21
import com.google.gwt.json.client.JSONValue;
676 aurelien 22
import com.google.gwt.user.client.Window;
2 aperonnet 23
 
24
public class UtilisateurAsynchroneDAO {
25
 
26
	/**
12 david 27
	 * Le modèle associé au DAO
2 aperonnet 28
	 */
12 david 29
	private CarnetEnLigneModele carnetEnLigneModele = null ;
30
 
31
	/**
32
	 * Constructeur
33
	 */
34
 
937 aurelien 35
	public UtilisateurAsynchroneDAO(CarnetEnLigneModele carnetEnLigneModele) {
12 david 36
		this.carnetEnLigneModele=carnetEnLigneModele;
2 aperonnet 37
	}
38
	/**
12 david 39
	 * Methode de classe d'appel du service gestion identification
40
	 * @param baseURL : URL du service
41
	 * @param retour : methode appelle en retour d'appel
2 aperonnet 42
	 */
12 david 43
 
44
	public void getEtatUtilisateur(final Rafraichissable r) {
5 aperonnet 45
 
2 aperonnet 46
		// Recherche identifiant utilisateur identifie
140 aurelien 47
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,Configuration.getServiceBaseUrl() + "/User/") ;
33 jpm 48
 
49
		try {
50
 
51
			rb.sendRequest(null, new RequestCallback() {
2 aperonnet 52
 
33 jpm 53
				public void onError(Request request, Throwable exception) {
676 aurelien 54
 
2 aperonnet 55
				}
56
 
33 jpm 57
				public void onResponseReceived(Request request,
58
						Response response) {
59
 
676 aurelien 60
					if(response.getText().isEmpty()) {
61
						Window.alert("Impossible de contacter le serveur, veuillez vérifier la configuration du cel ou contacter un administrateur");
62
					} else {
63
 
64
						JSONValue jsonValue = JSONParser.parse(response.getText());
937 aurelien 65
						JSONObject objetJsonUtilisateur;
140 aurelien 66
 
937 aurelien 67
						if ((objetJsonUtilisateur = jsonValue.isObject()) != null) {
676 aurelien 68
 
937 aurelien 69
							Utilisateur utilisateur = Utilisateur.InitialiserInstance(objetJsonUtilisateur);
676 aurelien 70
							r.rafraichir(utilisateur,true);
71
						}
72
					}
33 jpm 73
				}
74
			}) ;
937 aurelien 75
 
33 jpm 76
		} catch (RequestException e) {
937 aurelien 77
 
33 jpm 78
		}
2 aperonnet 79
	}
80
 
81
 
12 david 82
 
83
	public void deconnecterUtilisateur(final Rafraichissable r, String user) {
84
 
140 aurelien 85
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl()+ "/User/" + user) ;
33 jpm 86
 
87
		try {
88
 
89
			rb.sendRequest(null, new RequestCallback() {
2 aperonnet 90
 
33 jpm 91
				public void onError(Request request, Throwable exception) {
92
					// TODO Auto-generated method stub
93
 
94
				}
95
 
96
				public void onResponseReceived(Request request,
97
						Response response) {
98
 
99
					JSONValue jsonValue = JSONParser.parse(response.getText());
937 aurelien 100
					JSONObject objetJsonUtilisateur;
101
 
102
					if ((objetJsonUtilisateur = jsonValue.isObject()) != null) {
596 aurelien 103
 
937 aurelien 104
						Utilisateur utilisateur = Utilisateur.InitialiserInstance(objetJsonUtilisateur);
105
						r.rafraichir(utilisateur,true);
106
					}
33 jpm 107
				}
108
			}) ;
109
 
110
		} catch (RequestException e) {
937 aurelien 111
 
33 jpm 112
		}
2 aperonnet 113
	}
114
 
12 david 115
	public void connecteUtilisateur (final Rafraichissable r, String login, String password) {
33 jpm 116
 
143 aurelien 117
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,Configuration.getServiceBaseUrl() + "/User/" + login + "/" + password) ;
33 jpm 118
 
119
		try {
120
 
121
			rb.sendRequest(null, new RequestCallback() {
12 david 122
 
33 jpm 123
				public void onError(Request request, Throwable exception) {
124
					// TODO Auto-generated method stub
125
 
126
				}
2 aperonnet 127
 
33 jpm 128
				public void onResponseReceived(Request request,
129
						Response response) {
130
 
131
					JSONValue jsonValue = JSONParser.parse(response.getText());
937 aurelien 132
					JSONObject objetJsonUtilisateur;
33 jpm 133
 
937 aurelien 134
					if ((objetJsonUtilisateur = jsonValue.isObject()) != null) {
12 david 135
 
937 aurelien 136
						Utilisateur utilisateur = Utilisateur.InitialiserInstance(objetJsonUtilisateur);
596 aurelien 137
						r.rafraichir(utilisateur,true);
937 aurelien 138
					}
33 jpm 139
				}
140
 
141
 
142
			}) ;
143
 
144
		} catch (RequestException e) {
145
 
146
			e.printStackTrace() ;
147
		}
2 aperonnet 148
	}
149
 
596 aurelien 150
	public void accepterLicence(String identifiantUtilisateur) {
151
 
152
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,Configuration.getServiceBaseUrl() + "/LicenceUtilisateur/"+identifiantUtilisateur) ;
153
 
154
		try {
155
 
965 aurelien 156
			String postData = "licence=1";
596 aurelien 157
 
158
			rb.sendRequest(postData, new RequestCallback() {
12 david 159
 
596 aurelien 160
				public void onError(Request request, Throwable exception) {
161
					// TODO Auto-generated method stub
162
 
163
				}
12 david 164
 
596 aurelien 165
				public void onResponseReceived(Request request,
166
						Response response) {
167
 
937 aurelien 168
				}
596 aurelien 169
			}) ;
170
 
171
		} catch (RequestException e) {
172
 
173
			e.printStackTrace() ;
937 aurelien 174
		}
596 aurelien 175
	}
937 aurelien 176
}