New file |
0,0 → 1,91 |
package org.tela_botanica.del.client.services.rest; |
|
import org.tela_botanica.del.client.config.Config; |
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.AjoutCommentaireCallback; |
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback; |
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete; |
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback; |
|
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials; |
import com.google.gwt.http.client.URL; |
|
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, AjoutCommentaireCallback callback) { |
|
String urlService = baseUrl+"commentaires/"; |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.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="+URL.encodeQueryString(commentaire.getObservation().getId()); |
} |
if(commentaire.getContributeur().getId() != null) { |
chaineRequete += "&auteur.id="+URL.encodeQueryString(commentaire.getContributeur().getId()); |
} |
|
if(commentaire.getParent() != null && commentaire.getParent().getId() != null) { |
chaineRequete += "&id_parent="+URL.encodeQueryString(commentaire.getParent().getId()); |
PropositionDetermination propositionParente = commentaire.getPropositionParenteOuNulle(); |
if(propositionParente != null) { |
chaineRequete += "&proposition="+URL.encodeQueryString(propositionParente.getId()); |
} |
} |
chaineRequete += "&texte="+URL.encodeQueryString(commentaire.getCommentaire())+ |
"&auteur.prenom="+URL.encodeQueryString(commentaire.getContributeur().getPrenom())+ |
"&auteur.nom="+URL.encodeQueryString(commentaire.getContributeur().getNom())+ |
"&auteur.courriel="+URL.encodeQueryString(commentaire.getContributeur().getAdresseEmail()); |
return chaineRequete; |
} |
|
public void chargerCommentaires(PropositionDetermination propositionDetermination, ListeCommentairesCallback commentaireCallback) { |
String urlService = baseUrl+"commentaires/?proposition="+propositionDetermination.getId(); |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, urlService); |
|
commentaireCallback.setMode(ModeRequete.LECTURE); |
|
try { |
rb.sendRequest(null, commentaireCallback); |
} catch (Exception e) { |
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ? |
} |
} |
|
@Override |
public void supprimerCommentaire(Commentaire commentaire, SuppressionCommentaireCallback callback) { |
String urlService = baseUrl+"commentaires/"+commentaire.getId(); |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.DELETE, urlService); |
|
callback.setMode(ModeRequete.SUPPRESSION); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ? |
} |
} |
} |