Subversion Repositories eFlore/Applications.del

Rev

Rev 926 | Rev 975 | Go to most recent revision | 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
 
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;
879 aurelien 9
 
10
import com.google.gwt.http.client.RequestBuilder;
908 aurelien 11
import com.google.gwt.http.client.URL;
879 aurelien 12
 
13
public class CommentaireServiceConcret implements CommentaireService {
14
 
15
	private String baseUrl;
16
 
17
	public CommentaireServiceConcret() {
18
		Config config = new Config();
19
		this.baseUrl = config.getServiceBaseUrl();
20
	}
21
 
22
	public CommentaireServiceConcret(Config config) {
23
		this.baseUrl = config.getServiceBaseUrl();
24
	}
25
 
26
	@Override
939 benjamin 27
	public void ajouterCommentaire(Commentaire commentaire, AjoutCommentaireCallback callback) {
879 aurelien 28
 
29
		String urlService = baseUrl+"commentaires/";
30
		RequestBuilder rb = new RequestBuilder(RequestBuilder.PUT, urlService);
31
 
32
		callback.setMode(ModeRequete.AJOUT);
33
		String chainePost = assemblerChaineRequeteAjoutModif(commentaire);
34
		try {
35
			rb.sendRequest(chainePost, callback);
36
		} catch (Exception e) {
37
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
38
		}
39
	}
40
 
41
	private String assemblerChaineRequeteAjoutModif(Commentaire commentaire) {
42
 
43
		String chaineRequete = "";
44
		if(commentaire.getObservation() != null && commentaire.getObservation().getId() != null) {
908 aurelien 45
			chaineRequete += "observation="+URL.encodeQueryString(commentaire.getObservation().getId());
879 aurelien 46
		}
47
		if(commentaire.getContributeur().getId() != null) {
908 aurelien 48
			chaineRequete += "&auteur.id="+URL.encodeQueryString(commentaire.getContributeur().getId());
879 aurelien 49
		}
50
 
51
		if(commentaire.getParent() != null && commentaire.getParent().getId() != null) {
908 aurelien 52
			chaineRequete += "&id_parent="+URL.encodeQueryString(commentaire.getParent().getId());
887 aurelien 53
			PropositionDetermination propositionParente = commentaire.getPropositionParenteOuNulle();
54
			if(propositionParente != null) {
908 aurelien 55
				chaineRequete += "&proposition="+URL.encodeQueryString(propositionParente.getId());
879 aurelien 56
			}
57
		}
908 aurelien 58
		chaineRequete += "&texte="+URL.encodeQueryString(commentaire.getCommentaire())+
59
		"&auteur.prenom="+URL.encodeQueryString(commentaire.getContributeur().getPrenom())+
60
		"&auteur.nom="+URL.encodeQueryString(commentaire.getContributeur().getNom())+
61
		"&auteur.courriel="+URL.encodeQueryString(commentaire.getContributeur().getAdresseEmail());
879 aurelien 62
		return chaineRequete;
63
	}
926 benjamin 64
 
939 benjamin 65
	public void chargerCommentaires(PropositionDetermination propositionDetermination, ListeCommentairesCallback commentaireCallback) {
926 benjamin 66
		String urlService = baseUrl+"commentaires/?masque.proposition="+propositionDetermination.getId();
67
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlService);
68
 
69
		commentaireCallback.setMode(ModeRequete.LECTURE);
70
 
71
		try {
72
			rb.sendRequest(null, commentaireCallback);
73
		} catch (Exception e) {
74
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
75
		}
76
	}
879 aurelien 77
}