| 1175 | aurelien | 1 | package org.tela_botanica.del.client.services.rest;
 | 
        
           |  |  | 2 |   | 
        
           |  |  | 3 | import java.util.HashMap;
 | 
        
           |  |  | 4 | import java.util.Iterator;
 | 
        
           |  |  | 5 |   | 
        
           |  |  | 6 | import org.tela_botanica.del.client.config.Config;
 | 
        
           |  |  | 7 | import org.tela_botanica.del.client.modeles.Utilisateur;
 | 
        
           |  |  | 8 | import org.tela_botanica.del.client.services.rest.async.ListePreferencesCallback;
 | 
        
           |  |  | 9 | import org.tela_botanica.del.client.services.rest.async.ModificationPreferencesCallback;
 | 
        
           |  |  | 10 | import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
 | 
        
           |  |  | 11 |   | 
        
           | 1496 | aurelien | 12 | import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
 | 
        
           | 1175 | aurelien | 13 | import com.google.gwt.user.client.Window;
 | 
        
           |  |  | 14 |   | 
        
           |  |  | 15 | public class PreferencesServiceConcret implements PreferencesService {
 | 
        
           |  |  | 16 |   | 
        
           |  |  | 17 | 	private String baseUrl;
 | 
        
           |  |  | 18 |   | 
        
           |  |  | 19 | 	public PreferencesServiceConcret() {
 | 
        
           | 1470 | mathias | 20 | 		this(new Config());
 | 
        
           | 1175 | aurelien | 21 | 	}
 | 
        
           |  |  | 22 |   | 
        
           |  |  | 23 | 	public PreferencesServiceConcret(Config config) {
 | 
        
           | 1470 | mathias | 24 | 		this.baseUrl = config.getUrl("serviceUtilisateursBaseUrl");
 | 
        
           | 1175 | aurelien | 25 | 	}
 | 
        
           |  |  | 26 |   | 
        
           |  |  | 27 | 	@Override
 | 
        
           |  |  | 28 | 	public void modifierPreferences(Utilisateur utilisateur, HashMap<String, String> preferences, ModificationPreferencesCallback callback) {
 | 
        
           |  |  | 29 | 		String idUtilisateur = utilisateur.getId();
 | 
        
           |  |  | 30 | 		String urlService = baseUrl+"utilisateurs/"+idUtilisateur+"/preferences/";
 | 
        
           | 1496 | aurelien | 31 | 		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, urlService);
 | 
        
           | 1175 | aurelien | 32 |   | 
        
           |  |  | 33 | 		callback.setMode(ModeRequete.MODIFICATION);
 | 
        
           |  |  | 34 | 		String chainePost = assemblerRequeteModification(preferences);
 | 
        
           |  |  | 35 | 		try {
 | 
        
           |  |  | 36 | 			rb.sendRequest(chainePost, callback);
 | 
        
           |  |  | 37 | 		} catch (Exception e) {
 | 
        
           |  |  | 38 | 			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
 | 
        
           |  |  | 39 | 		}
 | 
        
           |  |  | 40 | 	}
 | 
        
           |  |  | 41 |   | 
        
           |  |  | 42 | 	private String assemblerRequeteModification(HashMap<String, String> preferences) {
 | 
        
           |  |  | 43 | 		String chaine = "";
 | 
        
           |  |  | 44 | 		Iterator<String> it = preferences.keySet().iterator();
 | 
        
           |  |  | 45 | 	    while (it.hasNext()) {
 | 
        
           |  |  | 46 | 	    	String cle = it.next();
 | 
        
           |  |  | 47 | 	    	if(!chaine.equals("")) {
 | 
        
           |  |  | 48 | 	    		chaine += "&";
 | 
        
           |  |  | 49 | 	    	}
 | 
        
           |  |  | 50 | 	    	chaine += cle+"="+preferences.get(cle);
 | 
        
           |  |  | 51 | 	    }
 | 
        
           |  |  | 52 |   | 
        
           |  |  | 53 | 	    return chaine;
 | 
        
           |  |  | 54 | 	}
 | 
        
           |  |  | 55 |   | 
        
           |  |  | 56 | 	@Override
 | 
        
           |  |  | 57 | 	public void chargerPreferences(Utilisateur utilisateur,
 | 
        
           |  |  | 58 | 			ListePreferencesCallback callback) {
 | 
        
           |  |  | 59 | 		String idUtilisateur = utilisateur.getId();
 | 
        
           |  |  | 60 | 		String urlService = baseUrl+"utilisateurs/"+idUtilisateur+"/preferences/";
 | 
        
           | 1496 | aurelien | 61 | 		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, urlService);
 | 
        
           | 1175 | aurelien | 62 |   | 
        
           |  |  | 63 | 		callback.setMode(ModeRequete.LECTURE);
 | 
        
           |  |  | 64 | 		try {
 | 
        
           |  |  | 65 | 			rb.sendRequest(null, callback);
 | 
        
           |  |  | 66 | 		} catch (Exception e) {
 | 
        
           |  |  | 67 | 			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
 | 
        
           |  |  | 68 | 		}
 | 
        
           |  |  | 69 | 	}
 | 
        
           |  |  | 70 | }
 |