Subversion Repositories eFlore/Applications.del

Rev

Rev 1775 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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