Subversion Repositories eFlore/Applications.del

Rev

Rev 898 | Go to most recent revision | Details | 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;
4
import org.tela_botanica.del.client.modeles.PropositionDetermination;
5
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack;
6
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack.ModeRequete;
7
 
8
import com.google.gwt.http.client.RequestBuilder;
9
import com.google.gwt.http.client.URL;
10
 
11
public class PropositionDeterminationServiceConcret implements
12
		PropositionDeterminationService {
13
 
14
	private String baseUrl;
15
 
16
	public PropositionDeterminationServiceConcret() {
17
		Config config = new Config();
18
		this.baseUrl = config.getServiceBaseUrl();
19
	}
20
 
21
	public PropositionDeterminationServiceConcret(Config config) {
22
		this.baseUrl = config.getServiceBaseUrl();
23
	}
24
 
25
	@Override
26
	public void ajouterProposition(PropositionDetermination proposition, PropositionDeterminationCallBack callback) {
27
 
28
		String urlService = baseUrl+"commentaires/";
29
		RequestBuilder rb = new RequestBuilder(RequestBuilder.PUT, urlService);
30
 
31
		callback.setMode(ModeRequete.AJOUT);
32
		String chainePost = assemblerChaineRequeteAjoutModif(proposition);
33
		try {
34
			// TODO urlencoder toutes les requetes;
35
			rb.sendRequest(URL.encode(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(PropositionDetermination proposition) {
42
 
43
		String chaineRequete = "";
44
		//TODO: tests sur les num nn et nt et la famille quand ils seront implémentés
45
		chaineRequete += "nom_sel="+proposition.getEspece()+
46
		"&auteur.prenom="+proposition.getContributeur().getPrenom()+
47
		"&auteur.nom="+proposition.getContributeur().getNom()+
48
		"&auteur.courriel="+proposition.getContributeur().getAdresseEmail();
49
 
50
		if(proposition.getObservation() != null && proposition.getObservation().getId() != null) {
51
			chaineRequete += "&observation="+proposition.getObservation().getId();
52
		}
53
		if(proposition.getContributeur().getId() != null) {
54
			chaineRequete += "&auteur.id="+proposition.getContributeur().getId();
55
		}
56
 
57
		if(proposition.getParent() != null && proposition.getParent().getId() != null) {
58
			chaineRequete += "&id_parent="+proposition.getParent().getId();
59
			PropositionDetermination propositionParente = proposition.getPropositionParenteOuNulle();
60
			if(propositionParente != null) {
61
				chaineRequete += "&proposition="+proposition.getPropositionParenteOuNulle();
62
			}
63
		}
64
 
65
		//TODO prise en compte du texte qui pourrait être saisi avec le commentaire
66
 
67
		return chaineRequete;
68
	}
69
}