Subversion Repositories eFlore/Applications.coel

Rev

Rev 741 | Rev 749 | 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
 
748 jpm 29
	public void selectionnerAuteurAPublication(String projetId, String idAuteurs, String role, String idPublication) {
30
		String[] parametres = {projetId, idAuteurs, idPublication};
31
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
741 aurelien 32
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
33
			@Override
34
			public void surReponse(JSONValue responseValue) {
35
				if (responseValue != null) {
748 jpm 36
					// Si la requête est un succès, réception d'un objet ou d'un tableau
741 aurelien 37
					if (responseValue.isObject() != null) {
38
						final JSONObject reponse = responseValue.isObject();
39
						// Transformation du tableau JSON réponse en ListeInstitution
40
						PublicationAPersonne publicationAPersonne = new PublicationAPersonne(reponse);
41
						// et on met à jour le demandeur des données
42
						vueARafraichir.rafraichir(publicationAPersonne);
43
					} else if (responseValue.isArray() != null) {
44
						final JSONArray reponse = responseValue.isArray();
45
						PublicationAPersonneListe publicationsAPersonneListe = new PublicationAPersonneListe(reponse);
46
						vueARafraichir.rafraichir(publicationsAPersonneListe);
47
					} else {
48
						GWT.log("La réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
49
					}
50
				} else {
51
					// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
52
					PublicationAPersonneListe publicationAPersonneListe = new PublicationAPersonneListe(0);
53
					vueARafraichir.rafraichir(publicationAPersonneListe);
54
				}
55
			}
56
		});
57
	}
58
 
748 jpm 59
	public void ajouterAuteur(String utilisateurid, String idAuteurs, String role, String idPublication) {
736 aurelien 60
 
61
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl()+SERVICE_NOM+"/";
62
		// auteur 2360
63
		JsonRestRequestBuilder rb = new JsonRestRequestBuilder(RequestBuilder.POST, url);
64
		String postDonneesEncodees = "cpuap_id_publication="+URL.encode(idPublication)
65
		+"&cpuap_id_role="+URL.encode(role)
66
		+"&cpuap_id_auteur="+idAuteurs
67
		+"&cmhl_ce_modifier_par="+utilisateurid;
68
 
69
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
70
			@Override
71
			public void surReponse(JSONValue reponseValeur) {
72
				traiterReponse(reponseValeur, "auteur_valide");
73
			}
74
		}) ;
75
	}
76
 
741 aurelien 77
 
748 jpm 78
	public void modifierAuteur(String utilisateurid, String idAuteurs, String idPublication) {
741 aurelien 79
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl()+SERVICE_NOM+"/"
80
		+idPublication+"/"
81
		+idAuteurs+"/"
82
		+"2360";
83
		// auteur 2360
84
		JsonRestRequestBuilder rb = new JsonRestRequestBuilder(RequestBuilder.POST, url);
85
		String postDonneesEncodees = "cpuap_id_publication="+URL.encode(idPublication)
86
		+"&cmhl_ce_modifier_par="+utilisateurid;
87
 
88
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
89
			@Override
90
			public void surReponse(JSONValue reponseValeur) {
91
				traiterReponse(reponseValeur, "auteur_valide");
92
			}
93
		}) ;
94
	}
95
 
736 aurelien 96
	private void traiterReponse(JSONValue reponseValeur, String type) {
97
		Information info = new Information(type);
748 jpm 98
		// Si la requête est un succès, réception d'une chaîne
736 aurelien 99
		if (reponseValeur.isBoolean() != null) {
100
			info.setDonnee(reponseValeur.isBoolean().booleanValue());
101
		} else if (reponseValeur.isString() != null) {
102
			info.setDonnee(reponseValeur.isString().stringValue());
103
		} else {
104
			info.setDeboguage("La réponse n'est pas une chaine JSON.");
105
		}
106
 
107
		vueARafraichir.rafraichir(info);
108
	}
109
}