Subversion Repositories eFlore/Applications.del

Rev

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