Subversion Repositories eFlore/Applications.del

Rev

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

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