New file |
0,0 → 1,125 |
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 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/"; |
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 ? |
} |
// stats |
Analytics.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és |
chaineRequete += "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; |
} |
|
@Override |
public 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 ? |
} |
// stats |
Analytics.evenement("proposition", "suppression", "{\"observation\": {\"id\": \"" + proposition.getObservation().getId() + "\", \"auteur\": \"" + proposition.getObservation().getAuteur() |
+ "\"}, \"proposition\": {\"auteur\": \"" + proposition.getAuteur() + "\", \"nom_sci\": \"" + proposition.getEspece() + "\", \"referentiel\": \"" + proposition.getReferentiel() + "\"}}"); |
} |
|
|
@Override |
public 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 ? |
} |
// stats |
Utilisateur 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() + "\"}}"); |
} |
} |