Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 886 → Rev 887

/trunk/src/org/tela_botanica/del/client/services/rest/PropositionDeterminationServiceConcret.java
New file
0,0 → 1,69
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack;
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack.ModeRequete;
 
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.URL;
 
public class PropositionDeterminationServiceConcret implements
PropositionDeterminationService {
private String baseUrl;
 
public PropositionDeterminationServiceConcret() {
Config config = new Config();
this.baseUrl = config.getServiceBaseUrl();
}
public PropositionDeterminationServiceConcret(Config config) {
this.baseUrl = config.getServiceBaseUrl();
}
 
@Override
public void ajouterProposition(PropositionDetermination proposition, PropositionDeterminationCallBack callback) {
String urlService = baseUrl+"commentaires/";
RequestBuilder rb = new RequestBuilder(RequestBuilder.PUT, urlService);
callback.setMode(ModeRequete.AJOUT);
String chainePost = assemblerChaineRequeteAjoutModif(proposition);
try {
// TODO urlencoder toutes les requetes;
rb.sendRequest(URL.encode(chainePost), callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
private String assemblerChaineRequeteAjoutModif(PropositionDetermination proposition) {
 
String chaineRequete = "";
//TODO: tests sur les num nn et nt et la famille quand ils seront implémentés
chaineRequete += "nom_sel="+proposition.getEspece()+
"&auteur.prenom="+proposition.getContributeur().getPrenom()+
"&auteur.nom="+proposition.getContributeur().getNom()+
"&auteur.courriel="+proposition.getContributeur().getAdresseEmail();
if(proposition.getObservation() != null && proposition.getObservation().getId() != null) {
chaineRequete += "&observation="+proposition.getObservation().getId();
}
if(proposition.getContributeur().getId() != null) {
chaineRequete += "&auteur.id="+proposition.getContributeur().getId();
}
if(proposition.getParent() != null && proposition.getParent().getId() != null) {
chaineRequete += "&id_parent="+proposition.getParent().getId();
PropositionDetermination propositionParente = proposition.getPropositionParenteOuNulle();
if(propositionParente != null) {
chaineRequete += "&proposition="+proposition.getPropositionParenteOuNulle();
}
}
//TODO prise en compte du texte qui pourrait être saisi avec le commentaire
 
return chaineRequete;
}
}