Subversion Repositories eFlore/Applications.del

Rev

Rev 926 | Rev 975 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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