Subversion Repositories eFlore/Applications.cel

Rev

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

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