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
47
 
140 aurelien 48
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,Configuration.getServiceBaseUrl() + "/User/") ;
33 jpm 49
 
50
		try {
51
 
52
			rb.sendRequest(null, new RequestCallback() {
2 aperonnet 53
 
33 jpm 54
				public void onError(Request request, Throwable exception) {
676 aurelien 55
 
2 aperonnet 56
				}
57
 
33 jpm 58
				public void onResponseReceived(Request request,
59
						Response response) {
60
 
676 aurelien 61
					if(response.getText().isEmpty()) {
62
						Window.alert("Impossible de contacter le serveur, veuillez vérifier la configuration du cel ou contacter un administrateur");
63
					} else {
64
 
65
						JSONValue jsonValue = JSONParser.parse(response.getText());
937 aurelien 66
						JSONObject objetJsonUtilisateur;
140 aurelien 67
 
937 aurelien 68
						if ((objetJsonUtilisateur = jsonValue.isObject()) != null) {
676 aurelien 69
 
937 aurelien 70
							Utilisateur utilisateur = Utilisateur.InitialiserInstance(objetJsonUtilisateur);
676 aurelien 71
							r.rafraichir(utilisateur,true);
72
						}
73
					}
33 jpm 74
				}
75
			}) ;
937 aurelien 76
 
33 jpm 77
		} catch (RequestException e) {
937 aurelien 78
 
33 jpm 79
		}
2 aperonnet 80
	}
81
 
82
 
12 david 83
 
84
	public void deconnecterUtilisateur(final Rafraichissable r, String user) {
85
 
140 aurelien 86
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl()+ "/User/" + user) ;
33 jpm 87
 
88
		try {
89
 
90
			rb.sendRequest(null, new RequestCallback() {
2 aperonnet 91
 
33 jpm 92
				public void onError(Request request, Throwable exception) {
93
					// TODO Auto-generated method stub
94
 
95
				}
96
 
97
				public void onResponseReceived(Request request,
98
						Response response) {
99
 
100
					JSONValue jsonValue = JSONParser.parse(response.getText());
937 aurelien 101
					JSONObject objetJsonUtilisateur;
102
 
103
					if ((objetJsonUtilisateur = jsonValue.isObject()) != null) {
596 aurelien 104
 
937 aurelien 105
						Utilisateur utilisateur = Utilisateur.InitialiserInstance(objetJsonUtilisateur);
106
						r.rafraichir(utilisateur,true);
107
					}
33 jpm 108
				}
109
			}) ;
110
 
111
		} catch (RequestException e) {
937 aurelien 112
 
33 jpm 113
		}
2 aperonnet 114
	}
115
 
12 david 116
	public void connecteUtilisateur (final Rafraichissable r, String login, String password) {
33 jpm 117
 
143 aurelien 118
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,Configuration.getServiceBaseUrl() + "/User/" + login + "/" + password) ;
33 jpm 119
 
120
		try {
121
 
122
			rb.sendRequest(null, new RequestCallback() {
12 david 123
 
33 jpm 124
				public void onError(Request request, Throwable exception) {
125
					// TODO Auto-generated method stub
126
 
127
				}
2 aperonnet 128
 
33 jpm 129
				public void onResponseReceived(Request request,
130
						Response response) {
131
 
132
					JSONValue jsonValue = JSONParser.parse(response.getText());
937 aurelien 133
					JSONObject objetJsonUtilisateur;
33 jpm 134
 
937 aurelien 135
					if ((objetJsonUtilisateur = jsonValue.isObject()) != null) {
12 david 136
 
937 aurelien 137
						Utilisateur utilisateur = Utilisateur.InitialiserInstance(objetJsonUtilisateur);
596 aurelien 138
						r.rafraichir(utilisateur,true);
937 aurelien 139
					}
33 jpm 140
				}
141
 
142
 
143
			}) ;
144
 
145
		} catch (RequestException e) {
146
 
147
			e.printStackTrace() ;
148
		}
2 aperonnet 149
	}
150
 
596 aurelien 151
	public void accepterLicence(String identifiantUtilisateur) {
152
 
153
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,Configuration.getServiceBaseUrl() + "/LicenceUtilisateur/"+identifiantUtilisateur) ;
154
 
155
		try {
156
 
157
			String postData = "acceptation_licence=1";
158
 
159
			rb.sendRequest(postData, new RequestCallback() {
12 david 160
 
596 aurelien 161
				public void onError(Request request, Throwable exception) {
162
					// TODO Auto-generated method stub
163
 
164
				}
12 david 165
 
596 aurelien 166
				public void onResponseReceived(Request request,
167
						Response response) {
168
 
937 aurelien 169
				}
596 aurelien 170
			}) ;
171
 
172
		} catch (RequestException e) {
173
 
174
			e.printStackTrace() ;
937 aurelien 175
		}
596 aurelien 176
	}
937 aurelien 177
}