Subversion Repositories eFlore/Applications.del

Rev

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