Subversion Repositories eFlore/Applications.del

Rev

Rev 939 | Rev 1255 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
887 aurelien 1
package org.tela_botanica.del.client.services.rest;
2
 
3
import org.tela_botanica.del.client.config.Config;
975 aurelien 4
import org.tela_botanica.del.client.modeles.Commentaire;
887 aurelien 5
import org.tela_botanica.del.client.modeles.PropositionDetermination;
939 benjamin 6
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
887 aurelien 7
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack;
975 aurelien 8
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback;
9
import org.tela_botanica.del.client.services.rest.async.SuppressionPropositionDeterminationCallback;
887 aurelien 10
 
11
import com.google.gwt.http.client.RequestBuilder;
12
import com.google.gwt.http.client.URL;
13
 
14
public class PropositionDeterminationServiceConcret implements
15
		PropositionDeterminationService {
16
 
17
	private String baseUrl;
18
 
19
	public PropositionDeterminationServiceConcret() {
20
		Config config = new Config();
21
		this.baseUrl = config.getServiceBaseUrl();
22
	}
23
 
24
	public PropositionDeterminationServiceConcret(Config config) {
25
		this.baseUrl = config.getServiceBaseUrl();
26
	}
27
 
28
	@Override
29
	public void ajouterProposition(PropositionDetermination proposition, PropositionDeterminationCallBack callback) {
30
 
31
		String urlService = baseUrl+"commentaires/";
32
		RequestBuilder rb = new RequestBuilder(RequestBuilder.PUT, urlService);
33
 
34
		callback.setMode(ModeRequete.AJOUT);
35
		String chainePost = assemblerChaineRequeteAjoutModif(proposition);
36
		try {
37
			// TODO urlencoder toutes les requetes;
908 aurelien 38
			rb.sendRequest(chainePost, callback);
887 aurelien 39
		} catch (Exception e) {
40
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
41
		}
42
	}
43
 
44
	private String assemblerChaineRequeteAjoutModif(PropositionDetermination proposition) {
45
 
46
		String chaineRequete = "";
47
		//TODO: tests sur les num nn et nt et la famille quand ils seront implémentés
908 aurelien 48
		chaineRequete += "nom_sel="+URL.encodeQueryString(proposition.getEspece())+
49
		"&auteur.prenom="+URL.encodeQueryString(proposition.getContributeur().getPrenom())+
50
		"&auteur.nom="+URL.encodeQueryString(proposition.getContributeur().getNom())+
51
		"&auteur.courriel="+URL.encodeQueryString(proposition.getContributeur().getAdresseEmail());
887 aurelien 52
 
898 aurelien 53
		if (proposition.getObservation() != null && proposition.getObservation().getId() != null) {
908 aurelien 54
			chaineRequete += "&observation="+URL.encodeQueryString(proposition.getObservation().getId());
887 aurelien 55
		}
898 aurelien 56
		if (proposition.getContributeur().getId() != null) {
908 aurelien 57
			chaineRequete += "&auteur.id="+URL.encodeQueryString(proposition.getContributeur().getId());
887 aurelien 58
		}
59
 
898 aurelien 60
		if (proposition.getParent() != null && proposition.getParent().getId() != null) {
908 aurelien 61
			chaineRequete += "&id_parent="+URL.encodeQueryString(proposition.getParent().getId());
887 aurelien 62
			PropositionDetermination propositionParente = proposition.getPropositionParenteOuNulle();
63
			if(propositionParente != null) {
908 aurelien 64
				chaineRequete += "&proposition="+URL.encodeQueryString(propositionParente.getId());
887 aurelien 65
			}
66
		}
67
 
898 aurelien 68
		if (proposition.getCommentaire() != null) {
908 aurelien 69
			chaineRequete += "&texte="+URL.encodeQueryString(proposition.getCommentaire());
898 aurelien 70
		}
887 aurelien 71
 
72
		return chaineRequete;
73
	}
975 aurelien 74
 
75
	@Override
76
	public void supprimerProposition(PropositionDetermination proposition, SuppressionPropositionDeterminationCallback callback) {
77
 
78
		String urlService = baseUrl+"commentaires/"+proposition.getId();
79
		RequestBuilder rb = new RequestBuilder(RequestBuilder.DELETE, urlService);
80
 
81
		callback.setMode(ModeRequete.SUPPRESSION);
82
		try {
83
			rb.sendRequest(null, callback);
84
		} catch (Exception e) {
85
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
86
		}
87
	}
887 aurelien 88
}