Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2212 arthur 1
package org.tela_botanica.del.client.services.rest;
2
 
3
import org.tela_botanica.del.client.cache.CacheClient;
4
import org.tela_botanica.del.client.config.Config;
5
import org.tela_botanica.del.client.services.rest.async.AjoutMotsClesImageCallback;
6
import org.tela_botanica.del.client.services.rest.async.ListeMotsClesImageCallBack;
7
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
8
import org.tela_botanica.del.client.utils.Analytics;
9
import org.tela_botanica.del.client.services.rest.async.SuppressionMotCleImageCallback;
10
 
11
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
12
import com.google.gwt.http.client.URL;
13
 
14
public class MotsClesServiceConcret implements MotsClesService {
15
 
16
	private String baseUrl;
17
 
18
	public MotsClesServiceConcret() {
19
		Config config = new Config();
20
		this.baseUrl = config.getServiceBaseUrl();
21
	}
22
 
23
	public MotsClesServiceConcret(Config config) {
24
		this.baseUrl = config.getServiceBaseUrl();
25
	}
26
 
27
	@Override
28
	public void getMotsClesImage(String idImage,
29
			ListeMotsClesImageCallBack callback) {
30
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "mots-cles" + assemblerChaineRequete(idImage));
31
		callback.setMode(ModeRequete.LECTURE);
32
		try {
33
			rb.sendRequest(null, callback);
34
		} catch (Exception e) {
35
			// TODO: handle exception
36
		}
37
	}
38
 
39
	private String assemblerChaineRequete(String idImage) {
40
		String chaineRequete = "?image="+idImage;
41
		return chaineRequete;
42
	}
43
 
44
	@Override
45
	public void ajouterMotCleImage(String idImage, String motCle,
46
			AjoutMotsClesImageCallback callback) {
47
		String urlService = baseUrl+"mots-cles/";
48
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.PUT, urlService);
49
 
50
		callback.setMode(ModeRequete.AJOUT);
51
		String chainePost = assemblerChaineRequeteAjout(idImage, motCle);
52
		try {
53
			rb.sendRequest(chainePost, callback);
54
		} catch (Exception e) {
55
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
56
		}
57
		// stats
58
		Analytics.evenement("mot-cle-image", "ajout", "{\"mot-cle\": \"" + motCle + "\", \"image\": \"" + idImage + "\"}");
59
	}
60
 
61
	private String assemblerChaineRequeteAjout(String idImage, String motCle) {
62
		return "image="+URL.encodeQueryString(idImage)+
63
			   "&mot_cle="+URL.encodeQueryString(motCle)+
64
			   "&"+URL.encodeQueryString("auteur.id")+"="+URL.encodeQueryString(CacheClient.getInstance().getUtilisateur().getId());
65
	}
66
 
67
	@Override
68
	public void supprimerMotCleImage(String idMotCle, SuppressionMotCleImageCallback callback) {
69
		String urlService = baseUrl+"mots-cles/"+idMotCle;
70
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.DELETE, urlService);
71
 
72
		callback.setMode(ModeRequete.SUPPRESSION);
73
		try {
74
			rb.sendRequest(null, callback);
75
		} catch (Exception e) {
76
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
77
		}
78
		// stats
79
		Analytics.evenement("mot-cle-image", "suppression", "{\"id_mot-cle\": \"" + idMotCle + "\"}");
80
	}
81
}