Subversion Repositories eFlore/Applications.coel

Rev

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