Subversion Repositories eFlore/Applications.coel

Rev

Rev 748 | Rev 751 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
736 aurelien 1
package org.tela_botanica.client.modeles;
2
 
3
import org.tela_botanica.client.RegistreId;
4
import org.tela_botanica.client.http.JsonRestRequestBuilder;
5
import org.tela_botanica.client.http.JsonRestRequestCallback;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
748 jpm 7
import org.tela_botanica.client.util.UtilDAO;
736 aurelien 8
 
9
import com.extjs.gxt.ui.client.Registry;
10
import com.google.gwt.core.client.GWT;
11
import com.google.gwt.http.client.RequestBuilder;
12
import com.google.gwt.http.client.URL;
13
import com.google.gwt.json.client.JSONArray;
14
import com.google.gwt.json.client.JSONBoolean;
15
import com.google.gwt.json.client.JSONObject;
16
import com.google.gwt.json.client.JSONValue;
17
import com.google.gwt.user.client.Window;
18
 
19
public class PublicationAPersonneAsyncDao {
20
 
21
	private static final String SERVICE_NOM = "CoelPublicationAPersonne";
22
 
23
	private Rafraichissable vueARafraichir = null;
24
 
25
	public PublicationAPersonneAsyncDao(Rafraichissable vueARafraichir) {
26
		this.vueARafraichir = vueARafraichir;
27
	}
28
 
749 aurelien 29
	public void selectionnerPublicationAPersonne(String idUtilisateur, String idAuteur, String idPublication, String idRole) {
30
 
31
		idAuteur = (idAuteur == null ? "*" : idAuteur);
32
		idPublication = (idPublication == null ? "*" : idPublication);
33
		idRole = (idRole == null ? "*" : idRole);
34
		String[] parametres = {idUtilisateur, idPublication, idRole};
748 jpm 35
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
741 aurelien 36
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
37
			@Override
38
			public void surReponse(JSONValue responseValue) {
39
				if (responseValue != null) {
748 jpm 40
					// Si la requête est un succès, réception d'un objet ou d'un tableau
741 aurelien 41
					if (responseValue.isObject() != null) {
42
						final JSONObject reponse = responseValue.isObject();
43
						// Transformation du tableau JSON réponse en ListeInstitution
44
						PublicationAPersonne publicationAPersonne = new PublicationAPersonne(reponse);
45
						// et on met à jour le demandeur des données
46
						vueARafraichir.rafraichir(publicationAPersonne);
47
					} else if (responseValue.isArray() != null) {
48
						final JSONArray reponse = responseValue.isArray();
49
						PublicationAPersonneListe publicationsAPersonneListe = new PublicationAPersonneListe(reponse);
50
						vueARafraichir.rafraichir(publicationsAPersonneListe);
51
					} else {
52
						GWT.log("La réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
53
					}
54
				} else {
55
					// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
56
					PublicationAPersonneListe publicationAPersonneListe = new PublicationAPersonneListe(0);
57
					vueARafraichir.rafraichir(publicationAPersonneListe);
58
				}
59
			}
60
		});
61
	}
62
 
748 jpm 63
	public void ajouterAuteur(String utilisateurid, String idAuteurs, String role, String idPublication) {
736 aurelien 64
 
65
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl()+SERVICE_NOM+"/";
66
		// auteur 2360
67
		JsonRestRequestBuilder rb = new JsonRestRequestBuilder(RequestBuilder.POST, url);
68
		String postDonneesEncodees = "cpuap_id_publication="+URL.encode(idPublication)
69
		+"&cpuap_id_role="+URL.encode(role)
70
		+"&cpuap_id_auteur="+idAuteurs
71
		+"&cmhl_ce_modifier_par="+utilisateurid;
72
 
73
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
74
			@Override
75
			public void surReponse(JSONValue reponseValeur) {
76
				traiterReponse(reponseValeur, "auteur_valide");
77
			}
78
		}) ;
79
	}
80
 
741 aurelien 81
 
748 jpm 82
	public void modifierAuteur(String utilisateurid, String idAuteurs, String idPublication) {
741 aurelien 83
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl()+SERVICE_NOM+"/"
84
		+idPublication+"/"
85
		+idAuteurs+"/"
86
		+"2360";
87
		// auteur 2360
88
		JsonRestRequestBuilder rb = new JsonRestRequestBuilder(RequestBuilder.POST, url);
89
		String postDonneesEncodees = "cpuap_id_publication="+URL.encode(idPublication)
90
		+"&cmhl_ce_modifier_par="+utilisateurid;
91
 
92
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
93
			@Override
94
			public void surReponse(JSONValue reponseValeur) {
95
				traiterReponse(reponseValeur, "auteur_valide");
96
			}
97
		}) ;
98
	}
99
 
736 aurelien 100
	private void traiterReponse(JSONValue reponseValeur, String type) {
101
		Information info = new Information(type);
748 jpm 102
		// Si la requête est un succès, réception d'une chaîne
736 aurelien 103
		if (reponseValeur.isBoolean() != null) {
104
			info.setDonnee(reponseValeur.isBoolean().booleanValue());
105
		} else if (reponseValeur.isString() != null) {
106
			info.setDonnee(reponseValeur.isString().stringValue());
107
		} else {
108
			info.setDeboguage("La réponse n'est pas une chaine JSON.");
109
		}
110
 
111
		vueARafraichir.rafraichir(info);
112
	}
113
}