Rev 882 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.services.rest;
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.exceptions.ExceptionClient;
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback;
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback.ModeRequete;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.user.client.Window;
public class CommentaireServiceConcret implements CommentaireService {
private String baseUrl;
public CommentaireServiceConcret() {
Config config = new Config();
this.baseUrl = config.getServiceBaseUrl();
}
public CommentaireServiceConcret(Config config) {
this.baseUrl = config.getServiceBaseUrl();
}
@Override
public void ajouterCommentaire(Commentaire commentaire, CommentaireCallback callback) {
String urlService = baseUrl+"commentaires/";
RequestBuilder rb = new RequestBuilder(RequestBuilder.PUT, urlService);
callback.setMode(ModeRequete.AJOUT);
String chainePost = assemblerChaineRequeteAjoutModif(commentaire);
try {
rb.sendRequest(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(Commentaire commentaire) {
String chaineRequete = "";
if(commentaire.getObservation() != null && commentaire.getObservation().getId() != null) {
chaineRequete += "observation="+commentaire.getObservation().getId();
}
if(commentaire.getContributeur().getId() != null) {
chaineRequete += "&auteur.id="+commentaire.getContributeur().getId();
}
// TODO voir à quoi on rattache les commentaires
if(commentaire.getParent() != null && commentaire.getParent().getId() != null) {
if(commentaire.getParent() instanceof PropositionDetermination) {
chaineRequete += "&ce_proposition="+commentaire.getParent().getId();
} else if(commentaire.getParent() instanceof Commentaire) {
chaineRequete += "&ce_commentaire_parent="+commentaire.getParent().getId();
}
}
chaineRequete += "&texte="+commentaire.getCommentaire()+
"&auteur.prenom="+commentaire.getContributeur().getPrenom()+
"&auteur.nom="+commentaire.getContributeur().getNom()+
"&auteur.courriel="+commentaire.getContributeur().getAdresseEmail();
return chaineRequete;
}
}