New file |
0,0 → 1,129 |
package org.tela_botanica.client.modeles; |
|
/** |
* Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour |
* |
*/ |
|
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
|
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestBuilder; |
import com.google.gwt.http.client.RequestCallback; |
import com.google.gwt.http.client.RequestException; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONBoolean; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.json.client.JSONString; |
import com.google.gwt.json.client.JSONValue; |
import com.google.gwt.user.client.ResponseTextHandler; |
|
public class UtilisateurAsynchroneDAO { |
|
private String urlServiceBase = null; |
private Rafraichissable rafraichissement = null; |
|
/** |
* Constructeur |
* @param retour : méthode appellée en retour d'appel. |
*/ |
public UtilisateurAsynchroneDAO(Rafraichissable r) { |
rafraichissement = r; |
urlServiceBase = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl(); |
} |
|
/** |
* Méthode de classe d'appel du service des gestion d'identification. |
*/ |
public void getEtatUtilisateur() { |
// Recherche identifiant utilisateur identifie |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+"CoelUtilisateur/") ; |
try { |
rb.sendRequest(null, new RequestCallback() { |
|
public void onError(Request request, Throwable exception) { |
// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP |
} |
|
public void onResponseReceived(Request request, Response response) { |
JSONValue jsonValue = JSONParser.parse(response.getText()); |
JSONArray jsonArray; |
if ((jsonArray = jsonValue.isArray()) != null) { |
// Identifiant utilisateur ou identifiant de session si non identifié |
String identifiant = ((JSONString) jsonArray.get(0)).stringValue(); |
// Drapeau leve si utilisateur deja identifié |
boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue(); |
rafraichissement.rafraichir(new Utilisateur(identifiant, identifie),true); |
} |
} |
}) ; |
} catch (RequestException e) { |
e.printStackTrace(); |
} |
} |
|
/** |
* Méthode déconnectant un utilisateur de l'application. |
* @param identifiant de l'utilisateur à déconnecter. |
*/ |
public void deconnecterUtilisateur(Utilisateur utilisateur) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+"CoelUtilisateur/"+utilisateur.getIdentifiant()) ; |
try { |
rb.sendRequest(null, new RequestCallback() { |
|
public void onError(Request request, Throwable exception) { |
// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP |
} |
|
public void onResponseReceived(Request request, Response response) { |
JSONValue jsonValue = JSONParser.parse(response.getText()); |
JSONArray jsonArray; |
if ((jsonArray = jsonValue.isArray()) != null) { |
// Identifiant utilisateur ou identifiant de session si non identifié |
String identifiant = ((JSONString) jsonArray.get(0)).stringValue(); |
// Drapeau levé si l'utilisateur est déjà identifié |
boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue(); |
rafraichissement.rafraichir(new Utilisateur(identifiant, identifie)); |
} |
} |
}) ; |
} catch (RequestException e) { |
e.printStackTrace(); |
} |
} |
|
/** |
* Méthode déconnectant un utilisateur de l'application. |
* @param Utilisateur l'utilisateur courant. |
*/ |
public void connecterUtilisateur (Utilisateur utilisateur) { |
String login = utilisateur.getLogin(); |
String password = utilisateur.getMotDePasse(); |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,urlServiceBase+"CoelUtilisateur/"+login+"/"+password); |
try { |
rb.sendRequest(null, new RequestCallback() { |
|
public void onError(Request request, Throwable exception) { |
// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP |
} |
|
public void onResponseReceived(Request request, Response response) { |
JSONValue jsonValue = JSONParser.parse(response.getText()); |
JSONArray jsonArray; |
if ((jsonArray = jsonValue.isArray()) != null) { |
// Identifiant utilisateur ou identifiant de session si non identifié |
String identifiant = ((JSONString) jsonArray.get(0)).stringValue(); |
// Drapeau levé si l'utilisateur est déjà identifié |
boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue(); |
rafraichissement.rafraichir(new Utilisateur(identifiant, identifie)); |
} |
} |
}) ; |
} catch (RequestException e) { |
e.printStackTrace(); |
} |
} |
} |