Subversion Repositories eFlore/Applications.coel

Rev

Rev 751 | Rev 758 | 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.http.JsonRestRequestBuilder;
4
import org.tela_botanica.client.http.JsonRestRequestCallback;
5
import org.tela_botanica.client.interfaces.Rafraichissable;
748 jpm 6
import org.tela_botanica.client.util.UtilDAO;
736 aurelien 7
 
8
import com.google.gwt.core.client.GWT;
9
import com.google.gwt.http.client.URL;
10
import com.google.gwt.json.client.JSONArray;
11
import com.google.gwt.json.client.JSONObject;
12
import com.google.gwt.json.client.JSONValue;
13
 
14
public class PublicationAPersonneAsyncDao {
15
 
16
	private static final String SERVICE_NOM = "CoelPublicationAPersonne";
17
 
18
	private Rafraichissable vueARafraichir = null;
19
 
751 jpm 20
	public PublicationAPersonneAsyncDao(Rafraichissable vueARafraichirCourrante) {
21
		vueARafraichir = vueARafraichirCourrante;
736 aurelien 22
	}
23
 
751 jpm 24
	public void selectionner(String projetId, String idAuteurs, String roleId, String idPublication) {
25
		String[] parametres = {projetId, idAuteurs, idPublication, roleId};
748 jpm 26
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
741 aurelien 27
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
28
			@Override
29
			public void surReponse(JSONValue responseValue) {
30
				if (responseValue != null) {
748 jpm 31
					// Si la requête est un succès, réception d'un objet ou d'un tableau
741 aurelien 32
					if (responseValue.isObject() != null) {
33
						final JSONObject reponse = responseValue.isObject();
34
						// Transformation du tableau JSON réponse en ListeInstitution
35
						PublicationAPersonne publicationAPersonne = new PublicationAPersonne(reponse);
36
						// et on met à jour le demandeur des données
37
						vueARafraichir.rafraichir(publicationAPersonne);
38
					} else if (responseValue.isArray() != null) {
39
						final JSONArray reponse = responseValue.isArray();
40
						PublicationAPersonneListe publicationsAPersonneListe = new PublicationAPersonneListe(reponse);
41
						vueARafraichir.rafraichir(publicationsAPersonneListe);
42
					} else {
43
						GWT.log("La réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
44
					}
45
				} else {
46
					// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
47
					PublicationAPersonneListe publicationAPersonneListe = new PublicationAPersonneListe(0);
48
					vueARafraichir.rafraichir(publicationAPersonneListe);
49
				}
50
			}
51
		});
52
	}
53
 
751 jpm 54
	public void ajouter(String utilisateurid, String personnesId, String role, String publicationId) {
55
		String postDonneesEncodees = "cpuap_id_publication="+URL.encode(publicationId)
56
		+"&cpuap_id_auteur="+personnesId
736 aurelien 57
		+"&cpuap_id_role="+URL.encode(role)
58
		+"&cmhl_ce_modifier_par="+utilisateurid;
751 jpm 59
 
60
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
736 aurelien 61
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
62
			@Override
63
			public void surReponse(JSONValue reponseValeur) {
64
				traiterReponse(reponseValeur, "auteur_valide");
65
			}
66
		}) ;
67
	}
741 aurelien 68
 
751 jpm 69
	public void modifier(String utilisateurid, String idAuteurs, String idPublication) {
70
		String[] parametres = {idPublication, idAuteurs, PublicationAPersonne.ROLE_AUTEUR};
71
 
753 aurelien 72
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
751 jpm 73
 
741 aurelien 74
		String postDonneesEncodees = "cpuap_id_publication="+URL.encode(idPublication)
75
		+"&cmhl_ce_modifier_par="+utilisateurid;
751 jpm 76
 
741 aurelien 77
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
78
			@Override
79
			public void surReponse(JSONValue reponseValeur) {
80
				traiterReponse(reponseValeur, "auteur_valide");
81
			}
82
		}) ;
83
	}
84
 
736 aurelien 85
	private void traiterReponse(JSONValue reponseValeur, String type) {
86
		Information info = new Information(type);
748 jpm 87
		// Si la requête est un succès, réception d'une chaîne
736 aurelien 88
		if (reponseValeur.isBoolean() != null) {
89
			info.setDonnee(reponseValeur.isBoolean().booleanValue());
90
		} else if (reponseValeur.isString() != null) {
91
			info.setDonnee(reponseValeur.isString().stringValue());
92
		} else {
93
			info.setDeboguage("La réponse n'est pas une chaine JSON.");
94
		}
95
 
96
		vueARafraichir.rafraichir(info);
97
	}
98
}