Subversion Repositories eFlore/Applications.coel

Rev

Rev 741 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.client.modeles;

import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.http.JsonRestRequestBuilder;
import org.tela_botanica.client.http.JsonRestRequestCallback;
import org.tela_botanica.client.interfaces.Rafraichissable;

import com.extjs.gxt.ui.client.Registry;
import com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.URL;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONBoolean;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.Window;

public class PublicationAPersonneAsyncDao {

        private static final String SERVICE_NOM = "CoelPublicationAPersonne";
        
        private Rafraichissable vueARafraichir = null;
        
        public PublicationAPersonneAsyncDao(Rafraichissable vueARafraichir) {
                this.vueARafraichir = vueARafraichir;
        }
        
        public void ajouterAuteur(String utilisateurid, String idAuteurs,
                        String role, String idPublication) {

                final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl()+SERVICE_NOM+"/";
                // auteur 2360
                JsonRestRequestBuilder rb = new JsonRestRequestBuilder(RequestBuilder.POST, url);
                String postDonneesEncodees = "cpuap_id_publication="+URL.encode(idPublication)
                +"&cpuap_id_role="+URL.encode(role)
                +"&cpuap_id_auteur="+idAuteurs
                +"&cmhl_ce_modifier_par="+utilisateurid;
                                
                rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
                        @Override
                        public void surReponse(JSONValue reponseValeur) {
                                traiterReponse(reponseValeur, "auteur_valide");
                        }
                }) ;
        }
        
        private void traiterReponse(JSONValue reponseValeur, String type) {
                Information info = new Information(type);
                // Si la requête est un succès, reception d'une chaine
                if (reponseValeur.isBoolean() != null) {
                        info.setDonnee(reponseValeur.isBoolean().booleanValue());
                } else if (reponseValeur.isString() != null) {
                        info.setDonnee(reponseValeur.isString().stringValue());
                } else {
                        info.setDeboguage("La réponse n'est pas une chaine JSON.");
                }
                
                vueARafraichir.rafraichir(info);
        }

}