Subversion Repositories eFlore/Applications.del

Rev

Rev 1496 | 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;
1255 aurelien 10
import org.tela_botanica.del.client.services.rest.async.ValidationPropositionCallback;
887 aurelien 11
 
1496 aurelien 12
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
887 aurelien 13
import com.google.gwt.http.client.URL;
14
 
15
public class PropositionDeterminationServiceConcret implements
16
		PropositionDeterminationService {
17
 
18
	private String baseUrl;
19
 
20
	public PropositionDeterminationServiceConcret() {
21
		Config config = new Config();
22
		this.baseUrl = config.getServiceBaseUrl();
23
	}
24
 
25
	public PropositionDeterminationServiceConcret(Config config) {
26
		this.baseUrl = config.getServiceBaseUrl();
27
	}
28
 
29
	@Override
30
	public void ajouterProposition(PropositionDetermination proposition, PropositionDeterminationCallBack callback) {
31
 
32
		String urlService = baseUrl+"commentaires/";
1496 aurelien 33
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.PUT, urlService);
887 aurelien 34
 
35
		callback.setMode(ModeRequete.AJOUT);
36
		String chainePost = assemblerChaineRequeteAjoutModif(proposition);
37
		try {
38
			// TODO urlencoder toutes les requetes;
908 aurelien 39
			rb.sendRequest(chainePost, callback);
887 aurelien 40
		} catch (Exception e) {
41
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
42
		}
43
	}
44
 
45
	private String assemblerChaineRequeteAjoutModif(PropositionDetermination proposition) {
46
 
47
		String chaineRequete = "";
48
		//TODO: tests sur les num nn et nt et la famille quand ils seront implémentés
908 aurelien 49
		chaineRequete += "nom_sel="+URL.encodeQueryString(proposition.getEspece())+
50
		"&auteur.prenom="+URL.encodeQueryString(proposition.getContributeur().getPrenom())+
51
		"&auteur.nom="+URL.encodeQueryString(proposition.getContributeur().getNom())+
52
		"&auteur.courriel="+URL.encodeQueryString(proposition.getContributeur().getAdresseEmail());
887 aurelien 53
 
1255 aurelien 54
		if(proposition.getNumNomenclatural() != null) {
55
			chaineRequete += "&nom_sel_nn="+URL.encodeQueryString(proposition.getNumNomenclatural());
56
		}
1393 aurelien 57
		if(proposition.getReferentiel() != null && !proposition.getReferentiel().equals("tous")) {
58
			chaineRequete += "&nom_referentiel="+URL.encodeQueryString(proposition.getReferentiel());
1367 aurelien 59
		}
898 aurelien 60
		if (proposition.getObservation() != null && proposition.getObservation().getId() != null) {
908 aurelien 61
			chaineRequete += "&observation="+URL.encodeQueryString(proposition.getObservation().getId());
887 aurelien 62
		}
898 aurelien 63
		if (proposition.getContributeur().getId() != null) {
908 aurelien 64
			chaineRequete += "&auteur.id="+URL.encodeQueryString(proposition.getContributeur().getId());
887 aurelien 65
		}
66
 
898 aurelien 67
		if (proposition.getParent() != null && proposition.getParent().getId() != null) {
908 aurelien 68
			chaineRequete += "&id_parent="+URL.encodeQueryString(proposition.getParent().getId());
887 aurelien 69
			PropositionDetermination propositionParente = proposition.getPropositionParenteOuNulle();
70
			if(propositionParente != null) {
908 aurelien 71
				chaineRequete += "&proposition="+URL.encodeQueryString(propositionParente.getId());
887 aurelien 72
			}
73
		}
74
 
898 aurelien 75
		if (proposition.getCommentaire() != null) {
908 aurelien 76
			chaineRequete += "&texte="+URL.encodeQueryString(proposition.getCommentaire());
898 aurelien 77
		}
887 aurelien 78
 
79
		return chaineRequete;
80
	}
975 aurelien 81
 
82
	@Override
83
	public void supprimerProposition(PropositionDetermination proposition, SuppressionPropositionDeterminationCallback callback) {
84
 
85
		String urlService = baseUrl+"commentaires/"+proposition.getId();
1496 aurelien 86
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.DELETE, urlService);
975 aurelien 87
 
88
		callback.setMode(ModeRequete.SUPPRESSION);
89
		try {
90
			rb.sendRequest(null, callback);
91
		} catch (Exception e) {
92
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
93
		}
94
	}
1255 aurelien 95
 
96
 
97
	@Override
98
	public void validerProposition(PropositionDetermination proposition, ValidationPropositionCallback callback) {
99
 
100
		String urlService = baseUrl+"determinations/valider-determination/"+proposition.getId();
1496 aurelien 101
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, urlService);
1255 aurelien 102
 
103
		callback.setMode(ModeRequete.MODIFICATION);
104
		String chainePost = "auteur.id="+URL.encodeQueryString(proposition.getContributeur().getId());
105
		try {
106
			rb.sendRequest(chainePost, callback);
107
		} catch (Exception e) {
108
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
109
		}
110
	}
887 aurelien 111
}