Subversion Repositories eFlore/Applications.del

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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