Subversion Repositories eFlore/Applications.del

Rev

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

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