Rev 1775 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.services.rest;import org.tela_botanica.del.client.cache.CacheClient;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.modeles.Utilisateur;import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;import org.tela_botanica.del.client.utils.Analytics;import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack;import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback;import org.tela_botanica.del.client.services.rest.async.SuppressionPropositionDeterminationCallback;import org.tela_botanica.del.client.services.rest.async.ValidationPropositionCallback;import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;import com.google.gwt.http.client.URL;public class PropositionDeterminationServiceConcret implementsPropositionDeterminationService {private String baseUrl;public PropositionDeterminationServiceConcret() {Config config = new Config();this.baseUrl = config.getServiceBaseUrl();}public PropositionDeterminationServiceConcret(Config config) {this.baseUrl = config.getServiceBaseUrl();}@Overridepublic void ajouterProposition(PropositionDetermination proposition, PropositionDeterminationCallBack callback) {String urlService = baseUrl+"commentaires/";RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.PUT, urlService);callback.setMode(ModeRequete.AJOUT);String chainePost = assemblerChaineRequeteAjoutModif(proposition);try {// TODO urlencoder toutes les requetes;rb.sendRequest(chainePost, callback);} catch (Exception e) {//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?}// statsAnalytics.evenement("proposition", "ajout", "{\"observation\": {\"id\": \"" + proposition.getObservation().getId() + "\", \"auteur\": \"" + proposition.getObservation().getAuteur()+ "\"}, \"proposition\": {\"auteur\": \"" + proposition.getAuteur() + "\", \"nom_sci\": \"" + proposition.getEspece() + "\", \"referentiel\": \"" + proposition.getReferentiel() + "\"}}");}private String assemblerChaineRequeteAjoutModif(PropositionDetermination proposition) {String chaineRequete = "";//TODO: tests sur les num nn et nt et la famille quand ils seront implémentéschaineRequete += "nom_sel="+URL.encodeQueryString(proposition.getEspece())+"&auteur.prenom="+URL.encodeQueryString(proposition.getContributeur().getPrenom())+"&auteur.nom="+URL.encodeQueryString(proposition.getContributeur().getNom())+"&auteur.courriel="+URL.encodeQueryString(proposition.getContributeur().getAdresseEmail());if(proposition.getNumNomenclatural() != null) {chaineRequete += "&nom_sel_nn="+URL.encodeQueryString(proposition.getNumNomenclatural());}if(proposition.getReferentiel() != null && !proposition.getReferentiel().equals("tous")) {chaineRequete += "&nom_referentiel="+URL.encodeQueryString(proposition.getReferentiel());}if (proposition.getObservation() != null && proposition.getObservation().getId() != null) {chaineRequete += "&observation="+URL.encodeQueryString(proposition.getObservation().getId());}if (proposition.getContributeur().getId() != null) {chaineRequete += "&auteur.id="+URL.encodeQueryString(proposition.getContributeur().getId());}if (proposition.getParent() != null && proposition.getParent().getId() != null) {chaineRequete += "&id_parent="+URL.encodeQueryString(proposition.getParent().getId());PropositionDetermination propositionParente = proposition.getPropositionParenteOuNulle();if(propositionParente != null) {chaineRequete += "&proposition="+URL.encodeQueryString(propositionParente.getId());}}if (proposition.getCommentaire() != null) {chaineRequete += "&texte="+URL.encodeQueryString(proposition.getCommentaire());}return chaineRequete;}@Overridepublic void supprimerProposition(PropositionDetermination proposition, SuppressionPropositionDeterminationCallback callback) {String urlService = baseUrl+"commentaires/"+proposition.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 ?}// statsAnalytics.evenement("proposition", "suppression", "{\"observation\": {\"id\": \"" + proposition.getObservation().getId() + "\", \"auteur\": \"" + proposition.getObservation().getAuteur()+ "\"}, \"proposition\": {\"auteur\": \"" + proposition.getAuteur() + "\", \"nom_sci\": \"" + proposition.getEspece() + "\", \"referentiel\": \"" + proposition.getReferentiel() + "\"}}");}@Overridepublic void validerProposition(PropositionDetermination proposition, ValidationPropositionCallback callback) {String urlService = baseUrl+"determinations/valider-determination/"+proposition.getId();RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, urlService);callback.setMode(ModeRequete.MODIFICATION);String chainePost = "auteur.id="+URL.encodeQueryString(proposition.getContributeur().getId())+"&validateur.id="+URL.encodeQueryString(proposition.getValideePar());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 ?}// statsUtilisateur utilisateur = CacheClient.getInstance().getUtilisateur();Analytics.evenement("proposition", "validation", "{\"validateur\": \"" + utilisateur.getNomPrenomFormate() + "\", \"observation\": {\"id\": \"" + proposition.getObservation().getId() + "\", \"auteur\": \"" + proposition.getObservation().getAuteur()+ "\"}, \"proposition\": {\"auteur\": \"" + proposition.getAuteur() + "\", \"nom_sci\": \"" + proposition.getEspece() + "\", \"referentiel\": \"" + proposition.getReferentiel() + "\"}}");}}