Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1496 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.config.Config;
3
import org.tela_botanica.del.client.config.Config;
4
import org.tela_botanica.del.client.modeles.PropositionDetermination;
4
import org.tela_botanica.del.client.modeles.PropositionDetermination;
5
import org.tela_botanica.del.client.modeles.VoteDetermination;
5
import org.tela_botanica.del.client.modeles.VoteDetermination;
6
import org.tela_botanica.del.client.services.rest.async.AjoutVoteDeterminationCallback;
6
import org.tela_botanica.del.client.services.rest.async.AjoutVoteDeterminationCallback;
7
import org.tela_botanica.del.client.services.rest.async.ListeVotesDeterminationCallback;
7
import org.tela_botanica.del.client.services.rest.async.ListeVotesDeterminationCallback;
8
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
8
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
9
 
-
 
-
 
9
import org.tela_botanica.del.client.utils.Analytics;
10
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
10
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
11
import com.google.gwt.user.client.Window;
11
import com.google.gwt.user.client.Window;
12
 
12
 
13
public class VoteDeterminationServiceConcret implements VoteDeterminationService {
13
public class VoteDeterminationServiceConcret implements VoteDeterminationService {
14
 
14
 
15
	private String baseUrl;
15
	private String baseUrl;
16
 
16
 
17
	public VoteDeterminationServiceConcret() {
17
	public VoteDeterminationServiceConcret() {
18
		Config config = new Config();
18
		Config config = new Config();
19
		this.baseUrl = config.getServiceBaseUrl();
19
		this.baseUrl = config.getServiceBaseUrl();
20
	}
20
	}
21
	
21
	
22
	public VoteDeterminationServiceConcret(Config config) {
22
	public VoteDeterminationServiceConcret(Config config) {
23
		this.baseUrl = config.getServiceBaseUrl();
23
		this.baseUrl = config.getServiceBaseUrl();
24
	}
24
	}
25
	
25
	
26
	@Override
26
	@Override
27
	public void ajouterVote(VoteDetermination voteDetermination, AjoutVoteDeterminationCallback callback) {
27
	public void ajouterVote(VoteDetermination voteDetermination, AjoutVoteDeterminationCallback callback) {
28
		
28
		
29
		
29
		
30
		String idObservation = voteDetermination.getPropositionDetermination().getObservation().getId();
30
		String idObservation = voteDetermination.getPropositionDetermination().getObservation().getId();
31
		String idProposition = voteDetermination.getPropositionDetermination().getId();
31
		String idProposition = voteDetermination.getPropositionDetermination().getId();
32
		//cas de la proposition de détermination crée automatiquement à partir de l'obs
32
		//cas de la proposition de détermination crée automatiquement à partir de l'obs
33
		if(idProposition == null) {
33
		if(idProposition == null) {
34
			idProposition = "0";
34
			idProposition = "0";
35
		}
35
		}
36
		
36
		
37
		String urlService = baseUrl+"observations/"+idObservation+"/"+idProposition+"/vote/";
37
		String urlService = baseUrl+"observations/"+idObservation+"/"+idProposition+"/vote/";
38
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.PUT, urlService);
38
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.PUT, urlService);
39
		
39
		
40
		callback.setMode(ModeRequete.AJOUT);
40
		callback.setMode(ModeRequete.AJOUT);
41
		String chainePost = assemblerChaineRequeteAjoutModif(voteDetermination);
41
		String chainePost = assemblerChaineRequeteAjoutModif(voteDetermination);
42
		try {
42
		try {
43
			rb.sendRequest(chainePost, callback);
43
			rb.sendRequest(chainePost, callback);
44
		} catch (Exception e) {
44
		} catch (Exception e) {
45
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
45
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
46
		}
46
		}
-
 
47
		// stats
-
 
48
		Analytics.evenement("vote", "ajout", "{\"vote\": {\"valeur\": \"" + voteDetermination.getVote() + "\", \"auteur\": \"" + voteDetermination.getAuteur()
-
 
49
				+ "\"}, \"proposition\": {\"auteur\": \"" + voteDetermination.getPropositionDetermination().getAuteur() + "\", \"nom_sci\": \"" + voteDetermination.getPropositionDetermination().getEspece() + "\", \"referentiel\": \"" + voteDetermination.getPropositionDetermination().getReferentiel() + "\"}}");
47
	}
50
	}
48
 
51
 
49
	@Override
52
	@Override
50
	public void modifierVote(VoteDetermination voteDetermination, AjoutVoteDeterminationCallback callback) {	
53
	public void modifierVote(VoteDetermination voteDetermination, AjoutVoteDeterminationCallback callback) {	
51
		String idObservation = voteDetermination.getPropositionDetermination().getObservation().getId();
54
		String idObservation = voteDetermination.getPropositionDetermination().getObservation().getId();
52
		String idProposition = voteDetermination.getPropositionDetermination().getId();
55
		String idProposition = voteDetermination.getPropositionDetermination().getId();
53
		//cas de la proposition de détermination crée automatiquement à partir de l'obs
56
		//cas de la proposition de détermination crée automatiquement à partir de l'obs
54
		if(idProposition == null) {
57
		if(idProposition == null) {
55
			idProposition = "0";
58
			idProposition = "0";
56
		}
59
		}
57
		
60
		
58
		String urlService = baseUrl+"observations/"+idObservation+"/"+idProposition+"/vote/";
61
		String urlService = baseUrl+"observations/"+idObservation+"/"+idProposition+"/vote/";
59
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, urlService);
62
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, urlService);
60
				
63
				
61
		callback.setMode(ModeRequete.MODIFICATION);
64
		callback.setMode(ModeRequete.MODIFICATION);
62
		String chainePost = assemblerChaineRequeteAjoutModif(voteDetermination);
65
		String chainePost = assemblerChaineRequeteAjoutModif(voteDetermination);
63
		try {
66
		try {
64
			rb.sendRequest(chainePost, callback);
67
			rb.sendRequest(chainePost, callback);
65
		} catch (Exception e) {
68
		} catch (Exception e) {
66
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
69
			//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
67
		}
70
		}
-
 
71
		// stats
-
 
72
		Analytics.evenement("vote", "modification", "{\"vote\": {\"valeur\": \"" + voteDetermination.getVote() + "\", \"auteur\": \"" + voteDetermination.getAuteur()
-
 
73
				+ "\"}, \"proposition\": {\"auteur\": \"" + voteDetermination.getPropositionDetermination().getAuteur() + "\", \"nom_sci\": \"" + voteDetermination.getPropositionDetermination().getEspece() + "\", \"referentiel\": \"" + voteDetermination.getPropositionDetermination().getReferentiel() + "\"}}");
68
	}
74
	}
69
 
75
 
70
	private String assemblerChaineRequeteAjoutModif(VoteDetermination voteDetermination) {
76
	private String assemblerChaineRequeteAjoutModif(VoteDetermination voteDetermination) {
71
		String chaineRequete = "utilisateur="+voteDetermination.getContributeur()+"&"+
77
		String chaineRequete = "utilisateur="+voteDetermination.getContributeur()+"&"+
72
								"valeur="+voteDetermination.getVote();
78
								"valeur="+voteDetermination.getVote();
73
		return chaineRequete;
79
		return chaineRequete;
74
	}
80
	}
75
 
81
 
76
	@Override
82
	@Override
77
	public void consulterVotesPourPropositionDetermination(PropositionDetermination propositionDetermination, ListeVotesDeterminationCallback callback) {
83
	public void consulterVotesPourPropositionDetermination(PropositionDetermination propositionDetermination, ListeVotesDeterminationCallback callback) {
78
		String idObservation = propositionDetermination.getObservation().getId();
84
		String idObservation = propositionDetermination.getObservation().getId();
79
		String idProposition = propositionDetermination.getId();
85
		String idProposition = propositionDetermination.getId();
80
		//cas de la proposition de détermination crée automatiquement à partir de l'obs
86
		//cas de la proposition de détermination crée automatiquement à partir de l'obs
81
		if(idProposition == null) {
87
		if(idProposition == null) {
82
			idProposition = "0";
88
			idProposition = "0";
83
		}
89
		}
84
		
90
		
85
		String urlService = baseUrl+"observations/"+idObservation+"/"+idProposition+"/vote/";
91
		String urlService = baseUrl+"observations/"+idObservation+"/"+idProposition+"/vote/";
86
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, urlService);
92
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, urlService);
87
				
93
				
88
		callback.setMode(ModeRequete.LECTURE);
94
		callback.setMode(ModeRequete.LECTURE);
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
		}
94
	}
100
	}
95
}
101
}