Subversion Repositories eFlore/Applications.coel

Rev

Rev 1860 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1860 Rev 1906
1
package org.tela_botanica.client.util;
1
package org.tela_botanica.client.util;
2
 
2
 
3
import java.util.HashMap;
3
import java.util.HashMap;
4
import java.util.Iterator;
4
import java.util.Iterator;
5
 
5
 
6
import org.tela_botanica.client.RegistreId;
6
import org.tela_botanica.client.RegistreId;
7
import org.tela_botanica.client.configuration.Configuration;
7
import org.tela_botanica.client.configuration.Configuration;
8
import org.tela_botanica.client.http.JsonRestRequestBuilder;
8
import org.tela_botanica.client.http.JsonRestRequestBuilder;
9
 
9
 
10
import com.extjs.gxt.ui.client.Registry;
10
import com.extjs.gxt.ui.client.Registry;
11
import com.google.gwt.http.client.URL;
11
import com.google.gwt.http.client.URL;
12
 
12
 
13
/**
13
/**
14
 * @author Gréguoire DUCHÉ <greguoire@tela-botanica.org>
14
 * @author Gréguoire DUCHÉ <greguoire@tela-botanica.org>
15
 * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
15
 * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
16
 * @description La classe utilDAO fournit des méthodes communes pour les outils DAO
16
 * @description La classe utilDAO fournit des méthodes communes pour les outils DAO
17
 * */
17
 * */
18
public class UtilDAO {
18
public class UtilDAO {
19
	
19
	
20
	private static String baseUrl = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
20
	private static String baseUrl = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
-
 
21
	private static String baseAuthUrl = ((Configuration) Registry.get(RegistreId.CONFIG)).getAuthServiceBaseUrl();
21
	public static final String GET = "GET";
22
	public static final String GET = "GET";
22
	public static final String POST = "POST";
23
	public static final String POST = "POST";
23
	public static final String DELETE = "DELETE";
24
	public static final String DELETE = "DELETE";
24
	public static final String PUT = "PUT";
25
	public static final String PUT = "PUT";
25
	private static final String SEPARATEUR_CHEMIN = "/";
26
	private static final String SEPARATEUR_CHEMIN = "/";
26
	private static final String SEPARATEUR_CLE_VALEUR = "=";
27
	private static final String SEPARATEUR_CLE_VALEUR = "=";
27
	private static final String SEPARATEUR_PARAMETRE = "&";
28
	private static final String SEPARATEUR_PARAMETRE = "&";
28
	private static final String SEPARATEUR_CHEMIN_PARAMETRE = "?";
29
	private static final String SEPARATEUR_CHEMIN_PARAMETRE = "?";
29
	private static final String CONTENU_CHEMIN_VIDE = "*";
30
	private static final String CONTENU_CHEMIN_VIDE = "*";
30
 
31
 
31
	public static JsonRestRequestBuilder construireRequetePost(String nomService)	{
32
	public static JsonRestRequestBuilder construireRequetePost(String nomService)	{
32
		return construireRequete(nomService, null, null, POST);
33
		return construireRequete(nomService, null, null, POST);
33
	}
34
	}
34
 
35
 
35
	public static JsonRestRequestBuilder construireRequetePost(String nomService, String[] parametres)	{
36
	public static JsonRestRequestBuilder construireRequetePost(String nomService, String[] parametres)	{
36
		return construireRequete(nomService, parametres, null, POST);
37
		return construireRequete(nomService, parametres, null, POST);
37
	}
38
	}
38
 
39
 
39
	public static JsonRestRequestBuilder construireRequete(String nomService)	{
40
	public static JsonRestRequestBuilder construireRequete(String nomService)	{
40
		return construireRequete(nomService, null, null, GET);
41
		return construireRequete(nomService, null, null, GET);
41
	}
42
	}
42
	
43
	
43
	public static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres)	{
44
	public static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres)	{
44
		return construireRequete(nomService, parametres, null, GET);
45
		return construireRequete(nomService, parametres, null, GET);
45
	}
46
	}
46
	
47
	
47
	public static JsonRestRequestBuilder construireRequete(String nomService, HashMap<String, String> restrictions)	{
48
	public static JsonRestRequestBuilder construireRequete(String nomService, HashMap<String, String> restrictions)	{
48
		return construireRequete(nomService, null, restrictions, GET);
49
		return construireRequete(nomService, null, restrictions, GET);
49
	}
50
	}
50
	
51
	
51
	public static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres, HashMap<String, String> restrictions)	{
52
	public static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres, HashMap<String, String> restrictions)	{
52
		return construireRequete(nomService, parametres, restrictions, GET);
53
		return construireRequete(nomService, parametres, restrictions, GET);
53
	}
54
	}
54
 
55
 
55
	private static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres, HashMap<String, String> restrictions, String typeRequete)	{
56
	private static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres, HashMap<String, String> restrictions, String typeRequete)	{
56
		String restrictionsUrl = construireUrlParametres(restrictions);
57
		String restrictionsUrl = construireUrlParametres(restrictions);
57
		String parametresUrl = construireUrlChemin(parametres);
58
		String parametresUrl = construireUrlChemin(parametres);
58
		
59
		
59
		String urlComplete = baseUrl + nomService + parametresUrl + restrictionsUrl;
60
		String urlComplete = baseUrl + nomService + parametresUrl + restrictionsUrl;
60
		String urlCompleteEncodee = URL.encode(urlComplete);
61
		String urlCompleteEncodee = URL.encode(urlComplete);
61
		
62
		
62
		JsonRestRequestBuilder jrrb;
63
		JsonRestRequestBuilder jrrb;
63
		if (typeRequete.equals(GET))	{
64
		if (typeRequete.equals(GET))	{
64
			jrrb = new JsonRestRequestBuilder(JsonRestRequestBuilder.GET, urlCompleteEncodee);
65
			jrrb = new JsonRestRequestBuilder(JsonRestRequestBuilder.GET, urlCompleteEncodee);
65
		} else	{
66
		} else	{
66
			jrrb = new JsonRestRequestBuilder(JsonRestRequestBuilder.POST, urlCompleteEncodee);
67
			jrrb = new JsonRestRequestBuilder(JsonRestRequestBuilder.POST, urlCompleteEncodee);
67
		}
68
		}
68
		return jrrb;
69
		return jrrb;
69
	}
70
	}
70
	
71
	
71
	private static String construireUrlParametres(HashMap<String, String> parametres) {
72
	private static String construireUrlParametres(HashMap<String, String> parametres) {
72
		String parametresUrl = "";
73
		String parametresUrl = "";
73
		if (parametres != null && parametres.size() > 0)	{
74
		if (parametres != null && parametres.size() > 0)	{
74
			parametresUrl = SEPARATEUR_CHEMIN_PARAMETRE;
75
			parametresUrl = SEPARATEUR_CHEMIN_PARAMETRE;
75
			Iterator<String> iterateur = parametres.keySet().iterator();
76
			Iterator<String> iterateur = parametres.keySet().iterator();
76
			while (iterateur.hasNext())	{
77
			while (iterateur.hasNext())	{
77
				String cle = iterateur.next();
78
				String cle = iterateur.next();
78
				parametresUrl += cle + SEPARATEUR_CLE_VALEUR + parametres.get(cle);
79
				parametresUrl += cle + SEPARATEUR_CLE_VALEUR + parametres.get(cle);
79
				
80
				
80
				if (iterateur.hasNext())	{
81
				if (iterateur.hasNext())	{
81
					parametresUrl = parametresUrl + SEPARATEUR_PARAMETRE;
82
					parametresUrl = parametresUrl + SEPARATEUR_PARAMETRE;
82
				}
83
				}
83
			}
84
			}
84
		}
85
		}
85
		return parametresUrl;
86
		return parametresUrl;
86
	}
87
	}
87
	
88
	
88
	private static String construireUrlChemin(String[] morceauxDuChemin) {
89
	private static String construireUrlChemin(String[] morceauxDuChemin) {
89
		String cheminUrl = "";
90
		String cheminUrl = "";
90
		if (morceauxDuChemin != null && morceauxDuChemin.length > 0)	{
91
		if (morceauxDuChemin != null && morceauxDuChemin.length > 0)	{
91
			cheminUrl = SEPARATEUR_CHEMIN;
92
			cheminUrl = SEPARATEUR_CHEMIN;
92
			for (int i = 0; i < morceauxDuChemin.length; i++)	{
93
			for (int i = 0; i < morceauxDuChemin.length; i++)	{
93
				cheminUrl += (UtilString.isEmpty(morceauxDuChemin[i]) ? CONTENU_CHEMIN_VIDE : morceauxDuChemin[i]) + SEPARATEUR_CHEMIN;
94
				cheminUrl += (UtilString.isEmpty(morceauxDuChemin[i]) ? CONTENU_CHEMIN_VIDE : morceauxDuChemin[i]) + SEPARATEUR_CHEMIN;
94
			}
95
			}
95
		}
96
		}
96
		return cheminUrl;
97
		return cheminUrl;
97
	}
98
	}
98
	
99
 
-
 
100
	/**
-
 
101
	 * Construit un JsonRestRequestBuilder avec le header Authorization
-
 
102
	 */
-
 
103
	public static JsonRestRequestBuilder construireRequeteAuth(String nomService, HashMap<String, String> parametres) {
-
 
104
		return construireRequeteAuth(nomService, parametres, true);
-
 
105
	}
-
 
106
 
-
 
107
	/**
-
 
108
	 * Construit un JsonRestRequestBuilder simple; si authorizationHeader vaut true, ajoute le header
-
 
109
	 * "Authorization" pour le service d'authentification SSO (annuaire::auth)
-
 
110
	 * 
-
 
111
	 * @param nomService le nom du service (identite, login, logout...)
-
 
112
	 * @param parametres tableau de paramètres
-
 
113
	 * @param boolean authorizationHeader si true, enverra le jeton (si existant) dans un header Authorization
-
 
114
	 * @return JsonRestRequestBuilder
-
 
115
	 */
-
 
116
	public static JsonRestRequestBuilder construireRequeteAuth(String nomService, HashMap<String, String> parametres, boolean authorizationHeader) {
-
 
117
		String parametresUrl = construireUrlParametres(parametres);
-
 
118
		String urlComplete = baseAuthUrl + nomService + parametresUrl;
-
 
119
		String urlCompleteEncodee = URL.encode(urlComplete);
-
 
120
		JsonRestRequestBuilder jrrb = new JsonRestRequestBuilder(JsonRestRequestBuilder.GET, urlCompleteEncodee, authorizationHeader);
-
 
121
		return jrrb;
-
 
122
	}
-
 
123
 
99
	public static String getUrlService(String nomService) {
124
	public static String getUrlService(String nomService) {
100
		return baseUrl + nomService;
125
		return baseUrl + nomService;
101
	}
126
	}
102
	
-
 
103
}
127
}
104
128