Subversion Repositories eFlore/Applications.del

Rev

Rev 890 | Rev 939 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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