Subversion Repositories eFlore/Applications.del

Rev

Rev 1836 | Details | Compare with Previous | Last modification | View Log | RSS feed

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