Subversion Repositories eFlore/Applications.del

Rev

Rev 908 | Rev 975 | 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;
4
import org.tela_botanica.del.client.modeles.PropositionDetermination;
939 benjamin 5
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
887 aurelien 6
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack;
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;
908 aurelien 35
			rb.sendRequest(chainePost, callback);
887 aurelien 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
908 aurelien 45
		chaineRequete += "nom_sel="+URL.encodeQueryString(proposition.getEspece())+
46
		"&auteur.prenom="+URL.encodeQueryString(proposition.getContributeur().getPrenom())+
47
		"&auteur.nom="+URL.encodeQueryString(proposition.getContributeur().getNom())+
48
		"&auteur.courriel="+URL.encodeQueryString(proposition.getContributeur().getAdresseEmail());
887 aurelien 49
 
898 aurelien 50
		if (proposition.getObservation() != null && proposition.getObservation().getId() != null) {
908 aurelien 51
			chaineRequete += "&observation="+URL.encodeQueryString(proposition.getObservation().getId());
887 aurelien 52
		}
898 aurelien 53
		if (proposition.getContributeur().getId() != null) {
908 aurelien 54
			chaineRequete += "&auteur.id="+URL.encodeQueryString(proposition.getContributeur().getId());
887 aurelien 55
		}
56
 
898 aurelien 57
		if (proposition.getParent() != null && proposition.getParent().getId() != null) {
908 aurelien 58
			chaineRequete += "&id_parent="+URL.encodeQueryString(proposition.getParent().getId());
887 aurelien 59
			PropositionDetermination propositionParente = proposition.getPropositionParenteOuNulle();
60
			if(propositionParente != null) {
908 aurelien 61
				chaineRequete += "&proposition="+URL.encodeQueryString(propositionParente.getId());
887 aurelien 62
			}
63
		}
64
 
898 aurelien 65
		if (proposition.getCommentaire() != null) {
908 aurelien 66
			chaineRequete += "&texte="+URL.encodeQueryString(proposition.getCommentaire());
898 aurelien 67
		}
887 aurelien 68
 
69
		return chaineRequete;
70
	}
71
}