Subversion Repositories eFlore/Applications.del

Rev

Rev 1470 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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