Subversion Repositories eFlore/Applications.del

Rev

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

Rev 2095 Rev 2108
1
package org.tela_botanica.del.client.services.rest;
1
package org.tela_botanica.del.client.services.rest;
-
 
2
 
2
 
3
import org.tela_botanica.del.client.cache.CacheClient;
3
import org.tela_botanica.del.client.config.Config;
4
import org.tela_botanica.del.client.config.Config;
4
import org.tela_botanica.del.client.modeles.Commentaire;
5
import org.tela_botanica.del.client.modeles.Commentaire;
5
import org.tela_botanica.del.client.modeles.PropositionDetermination;
6
import org.tela_botanica.del.client.modeles.PropositionDetermination;
-
 
7
import org.tela_botanica.del.client.modeles.Utilisateur;
6
import org.tela_botanica.del.client.services.rest.async.AjoutCommentaireCallback;
8
import org.tela_botanica.del.client.services.rest.async.AjoutCommentaireCallback;
7
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback;
9
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback;
8
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
10
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
9
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback;
11
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback;
10
 
-
 
-
 
12
import org.tela_botanica.del.client.utils.Analytics;
11
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
13
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
12
import com.google.gwt.http.client.URL;
14
import com.google.gwt.http.client.URL;
13
 
15
 
14
public class CommentaireServiceConcret implements CommentaireService {
16
public class CommentaireServiceConcret implements CommentaireService {
15
 
17
 
16
	private String baseUrl;
18
	private String baseUrl;
17
 
19
 
18
	public CommentaireServiceConcret() {
20
	public CommentaireServiceConcret() {
19
		Config config = new Config();
21
		Config config = new Config();
20
		this.baseUrl = config.getServiceBaseUrl();
22
		this.baseUrl = config.getServiceBaseUrl();
21
	}
23
	}
22
	
24
 
23
	public CommentaireServiceConcret(Config config) {
25
	public CommentaireServiceConcret(Config config) {
24
		this.baseUrl = config.getServiceBaseUrl();
26
		this.baseUrl = config.getServiceBaseUrl();
25
	}
27
	}
26
	
28
 
27
	@Override
29
	@Override
28
	public void ajouterCommentaire(Commentaire commentaire, AjoutCommentaireCallback callback) {
30
	public void ajouterCommentaire(Commentaire commentaire, AjoutCommentaireCallback callback) {
29
		
31
 
30
		String urlService = baseUrl+"commentaires/";
32
		String urlService = baseUrl+"commentaires/";
31
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.PUT, urlService);
33
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.PUT, urlService);
32
		
34
 
33
		callback.setMode(ModeRequete.AJOUT);
35
		callback.setMode(ModeRequete.AJOUT);
34
		String chainePost = assemblerChaineRequeteAjoutModif(commentaire);
36
		String chainePost = assemblerChaineRequeteAjoutModif(commentaire);
35
		try {
37
		try {
36
			rb.sendRequest(chainePost, callback);
38
			rb.sendRequest(chainePost, callback);
37
		} catch (Exception e) {
39
		} catch (Exception e) {
38
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
40
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
39
		}
41
		}
-
 
42
		// stats
-
 
43
		Analytics.evenement("commentaire", "ajout", "{\"auteur\": \"" + commentaire.getAuteur() + "\", \"observation\": \"" + commentaire.getObservation().getId() + "\"}");
40
	}
44
	}
41
	
45
 
42
	private String assemblerChaineRequeteAjoutModif(Commentaire commentaire) {
46
	private String assemblerChaineRequeteAjoutModif(Commentaire commentaire) {
43
 
47
 
44
		String chaineRequete = "";
48
		String chaineRequete = "";
45
		if(commentaire.getObservation() != null && commentaire.getObservation().getId() != null) {
49
		if(commentaire.getObservation() != null && commentaire.getObservation().getId() != null) {
46
			chaineRequete += "observation="+URL.encodeQueryString(commentaire.getObservation().getId());
50
			chaineRequete += "observation="+URL.encodeQueryString(commentaire.getObservation().getId());
47
		}
51
		}
48
		if(commentaire.getContributeur().getId() != null) {
52
		if(commentaire.getContributeur().getId() != null) {
49
			chaineRequete += "&auteur.id="+URL.encodeQueryString(commentaire.getContributeur().getId());
53
			chaineRequete += "&auteur.id="+URL.encodeQueryString(commentaire.getContributeur().getId());
50
		}
54
		}
51
 
55
 
52
		if(commentaire.getParent() != null && commentaire.getParent().getId() != null) {
56
		if(commentaire.getParent() != null && commentaire.getParent().getId() != null) {
53
			chaineRequete += "&id_parent="+URL.encodeQueryString(commentaire.getParent().getId());
57
			chaineRequete += "&id_parent="+URL.encodeQueryString(commentaire.getParent().getId());
54
			PropositionDetermination propositionParente = commentaire.getPropositionParenteOuNulle();
58
			PropositionDetermination propositionParente = commentaire.getPropositionParenteOuNulle();
55
			if(propositionParente != null) {
59
			if(propositionParente != null) {
56
				chaineRequete += "&proposition="+URL.encodeQueryString(propositionParente.getId());
60
				chaineRequete += "&proposition="+URL.encodeQueryString(propositionParente.getId());
57
			}
61
			}
58
		}
62
		}
59
		chaineRequete += "&texte="+URL.encodeQueryString(commentaire.getCommentaire())+
63
		chaineRequete += "&texte="+URL.encodeQueryString(commentaire.getCommentaire())+
60
		"&auteur.prenom="+URL.encodeQueryString(commentaire.getContributeur().getPrenom())+
64
		"&auteur.prenom="+URL.encodeQueryString(commentaire.getContributeur().getPrenom())+
61
		"&auteur.nom="+URL.encodeQueryString(commentaire.getContributeur().getNom())+
65
		"&auteur.nom="+URL.encodeQueryString(commentaire.getContributeur().getNom())+
62
		"&auteur.courriel="+URL.encodeQueryString(commentaire.getContributeur().getAdresseEmail());
66
		"&auteur.courriel="+URL.encodeQueryString(commentaire.getContributeur().getAdresseEmail());
63
		return chaineRequete;
67
		return chaineRequete;
64
	}
68
	}
65
 
69
 
66
	public void chargerCommentaires(PropositionDetermination propositionDetermination, ListeCommentairesCallback commentaireCallback) {
70
	public void chargerCommentaires(PropositionDetermination propositionDetermination, ListeCommentairesCallback commentaireCallback) {
67
		String urlService = baseUrl+"commentaires/?proposition="+propositionDetermination.getId();
71
		String urlService = baseUrl+"commentaires/?proposition="+propositionDetermination.getId();
68
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, urlService);
72
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, urlService);
69
		
73
		
70
		commentaireCallback.setMode(ModeRequete.LECTURE);
74
		commentaireCallback.setMode(ModeRequete.LECTURE);
71
		
75
		
72
		try {
76
		try {
73
			rb.sendRequest(null, commentaireCallback);
77
			rb.sendRequest(null, commentaireCallback);
74
		} catch (Exception e) {
78
		} catch (Exception e) {
75
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
79
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
76
		}
80
		}
77
	}
81
	}
78
 
82
 
79
	@Override
83
	@Override
80
	public void supprimerCommentaire(Commentaire commentaire, SuppressionCommentaireCallback callback) {
84
	public void supprimerCommentaire(Commentaire commentaire, SuppressionCommentaireCallback callback) {
81
		String urlService = baseUrl+"commentaires/"+commentaire.getId();
85
		String urlService = baseUrl+"commentaires/"+commentaire.getId();
82
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.DELETE, urlService);
86
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.DELETE, urlService);
83
		
87
		
84
		callback.setMode(ModeRequete.SUPPRESSION);
88
		callback.setMode(ModeRequete.SUPPRESSION);
85
		try {
89
		try {
86
			rb.sendRequest(null, callback);
90
			rb.sendRequest(null, callback);
87
		} catch (Exception e) {
91
		} catch (Exception e) {
88
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
92
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
89
		}
93
		}
-
 
94
		// stats
-
 
95
		Analytics.evenement("commentaire", "suppression", "{\"auteur\": \"" + commentaire.getAuteur() + "\", \"observation\": \"" + commentaire.getObservation().getId() + "\"}");
90
	}
96
	}
91
}
97
}