-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApiResponse.java
More file actions
237 lines (217 loc) · 6.8 KB
/
ApiResponse.java
File metadata and controls
237 lines (217 loc) · 6.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
package fr.sandro642.github.api;
import java.util.Map;
/**
* ApiResponse est une classe générique qui représente la réponse d'une API.
* Elle contient des informations sur l'état de la réponse, un message, un code
* de statut et des données spécifiques.
* @author Sandro642
* @version 1.0
* @since 1.0
*/
public class ApiResponse {
/**
* Variables d'instance
* err : Indique s'il y a une erreur dans la réponse.
* Msg : Message d'erreur ou de succès.
* Code : Code de statut de la réponse (par exemple, HTTP status code).
* Data : Données spécifiques de la réponse, stockées dans une Map.
*/
private boolean err;
private String msg;
private int code;
private Map<String, Object> data;
// Constructeurs
public ApiResponse() {
}
/**
* Constructeur pour initialiser la réponse d'API avec des valeurs spécifiques.
*
* @param err indique s'il y a une erreur dans la réponse.
* @param msg message d'erreur ou de succès.
* @param code code de statut de la réponse (par exemple, HTTP status code).
* @param data données spécifiques de la réponse, stockées dans une Map.
*/
public ApiResponse(boolean err, String msg, int code, Map<String, Object> data) {
this.err = err;
this.msg = msg;
this.code = code;
this.data = data;
}
/**
* Vérifie s'il y a une erreur dans la réponse.
*
* @return true si la réponse contient une erreur, false sinon.
*/
public boolean isErr() {
return err;
}
/**
* Définit si la réponse contient une erreur.
*
* @param err indique s'il y a une erreur dans la réponse.
*/
public void setErr(boolean err) {
this.err = err;
}
/**
* Récupère le message de la réponse.
*
* @return le message de la réponse, qui peut être un message d'erreur ou de
*/
public String getMsg() {
return msg;
}
/**
* Définit le message de la réponse.
*
* @param msg le message de la réponse, qui peut être un message d'erreur ou de
*/
public void setMsg(String msg) {
this.msg = msg;
}
/**
* Récupère le code de statut de la réponse.
*
* @return le code de statut de la réponse, par exemple un code HTTP.
*/
public int getCode() {
return code;
}
/**
* Définit le code de statut de la réponse.
*
* @param code le code de statut de la réponse, par exemple un code HTTP.
*/
public void setCode(int code) {
this.code = code;
}
/**
* Récupère les données de la réponse.
*
* @return une Map contenant les données spécifiques de la réponse.
*/
public Map<String, Object> getData() {
return data;
}
/**
* Définit les données de la réponse.
*
* @param data une Map contenant les données spécifiques de la réponse.
*/
public void setData(Map<String, Object> data) {
this.data = data;
}
/**
* Récupère une donnée spécifique à partir de la Map 'data' en utilisant une
* clé.
*
* @deprecated En raison de la nature générique de cette méthode créant des
* erreurs, il est recommandé d'utiliser les méthodes spécifiques
* pour chaque type de données. Cette méthode est obsolète et peut
* être supprimée dans les futures versions.
* @see #getSpecDataBoolean(String key)
* @see #getSpecDataDouble(String key)
* @see #getSpecDataString(String key)
* @see #getSpecDataInteger (String key)
* @param key La clé pour accéder à la donnée.
* @return La valeur associée à la clé dans la Map 'data'.
*/
@Deprecated
public Object getSpecData(String key) {
if (data == null) {
throw new RuntimeException("Le champ 'data' est null.");
}
return data.get(key);
}
/**
* Récupère une donnée spécifique à partir de la Map 'data' en utilisant une clé
* et la convertit en type spécifié.
*
* @param key La clé pour accéder à la donnée.
* @return La valeur associée à la clé dans la Map 'data', convertie au type
* spécifié.
*/
public boolean getSpecDataBoolean(String key) {
if (data == null) {
throw new RuntimeException("Le champ 'data' est null.");
}
Object value = data.get(key);
if (value instanceof Boolean) {
return (Boolean) value;
} else {
throw new RuntimeException("La valeur de la clé '" + key + "' n'est pas un booléen.");
}
}
/**
* Récupère une donnée spécifique à partir de la Map 'data' en utilisant une clé
* et la convertit en type Double.
*
* @param key La clé pour accéder à la donnée.
* @return La valeur associée à la clé dans la Map 'data', convertie en Double.
*/
public Double getSpecDataDouble(String key) {
if (data == null) {
throw new RuntimeException("Le champ 'data' est null.");
}
Object value = data.get(key);
if (value instanceof Double) {
return (Double) value;
} else if (value instanceof Number) {
return ((Number) value).doubleValue();
} else {
throw new RuntimeException("La valeur de la clé '" + key + "' n'est pas un double.");
}
}
/**
* Récupère une donnée spécifique à partir de la Map 'data' en utilisant une clé
* et la convertit en type String.
*
* @param key La clé pour accéder à la donnée.
* @return La valeur associée à la clé dans la Map 'data', convertie en String.
*/
public String getSpecDataString(String key) {
if (data == null) {
throw new RuntimeException("Le champ 'data' est null.");
}
Object value = data.get(key);
if (value instanceof String) {
return (String) value;
} else {
throw new RuntimeException("La valeur de la clé '" + key + "' n'est pas une chaîne.");
}
}
/**
* Récupère une donnée spécifique à partir de la Map 'data' en utilisant une clé
* et la convertit en type Integer.
*
* @param key La clé pour accéder à la donnée.
* @return La valeur associée à la clé dans la Map 'data', convertie en Integer.
*/
public Integer getSpecDataInteger(String key) {
if (data == null) {
throw new RuntimeException("Le champ 'data' est null.");
}
Object value = data.get(key);
if (value instanceof Integer) {
return (Integer) value;
} else if (value instanceof Number) {
return ((Number) value).intValue();
} else {
throw new RuntimeException("La valeur de la clé '" + key + "' n'est pas un entier.");
}
}
/**
* Récupère une donnée spécifique à partir de la Map 'data' en utilisant une clé
* et la convertit en type Long.
*
* @return La valeur associée à la clé dans la Map 'data', convertie en Long.
*/
public String display() {
return "ApiResponse{" +
"err=" + err +
", msg='" + msg + '\'' +
", code=" + code +
", data=" + data +
'}';
}
}