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; |
} |
} |