Skip to content

Commit 36ab350

Browse files
committed
Feature: refactor ApiResponse to use Object for extra data and add getExtra method
1 parent 6ef8ec3 commit 36ab350

2 files changed

Lines changed: 29 additions & 52 deletions

File tree

src/main/java/fr/sandro642/github/api/ApiResponse.java

Lines changed: 11 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,10 @@ public class ApiResponse<T> {
2323
private String msg;
2424
private int code;
2525
private Map<String, Object> data;
26-
private Map<String, Object> extra;
26+
private Object extra;
2727

2828
// Constructeurs
2929
public ApiResponse() {
30-
this.extra = new HashMap<>();
3130
}
3231

3332
/**
@@ -37,12 +36,12 @@ public ApiResponse() {
3736
* @param code
3837
* @param data
3938
*/
40-
public ApiResponse(boolean err, String msg, int code, Map<String, Object> data) {
39+
public ApiResponse(boolean err, String msg, int code, Map<String, Object> data, Object extra) {
4140
this.err = err;
4241
this.msg = msg;
4342
this.code = code;
4443
this.data = data;
45-
this.extra = new HashMap<>();
44+
this.extra = extra;
4645
}
4746

4847
/**
@@ -109,6 +108,14 @@ public void setData(Map<String, Object> data) {
109108
this.data = data;
110109
}
111110

111+
/**
112+
* Récupère les champs supplémentaires de la réponse.
113+
* @return
114+
*/
115+
public Object getExtra(String key) {
116+
return key;
117+
}
118+
112119
/**
113120
* Récupère une donnée spécifique à partir de la Map 'data' en utilisant une clé.
114121
* @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.
@@ -199,47 +206,6 @@ public Integer getSpecDataInteger(String key) {
199206
}
200207
}
201208

202-
/**
203-
* Récupère une donnée supplémentaire à partir de la Map 'extra' en utilisant une clé.
204-
* Cette méthode permet d'accéder à des champs qui ne font pas partie des champs standard (err, msg, code, data).
205-
* @param key La clé pour accéder à la donnée supplémentaire.
206-
* @return La valeur associée à la clé dans la Map 'extra', ou null si la clé n'existe pas.
207-
*/
208-
public Object getExtra(String key) {
209-
if (extra == null) {
210-
return null;
211-
}
212-
return extra.get(key);
213-
}
214-
215-
/**
216-
* Définit une donnée supplémentaire dans la Map 'extra'.
217-
* @param key La clé pour la donnée supplémentaire.
218-
* @param value La valeur à associer à la clé.
219-
*/
220-
public void setExtra(String key, Object value) {
221-
if (extra == null) {
222-
extra = new HashMap<>();
223-
}
224-
extra.put(key, value);
225-
}
226-
227-
/**
228-
* Récupère toutes les données supplémentaires.
229-
* @return La Map contenant toutes les données supplémentaires.
230-
*/
231-
public Map<String, Object> getExtraData() {
232-
return extra;
233-
}
234-
235-
/**
236-
* Définit toutes les données supplémentaires.
237-
* @param extra La Map contenant les données supplémentaires.
238-
*/
239-
public void setExtraData(Map<String, Object> extra) {
240-
this.extra = extra;
241-
}
242-
243209
/**
244210
* Récupère une donnée spécifique à partir de la Map 'data' en utilisant une clé et la convertit en type Long.
245211
* @return La valeur associée à la clé dans la Map 'data', convertie en Long.

src/test/java/fr/sandro642/github/test/Main.java

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,6 @@
1919

2020
public class Main {
2121

22-
@Test
23-
public void getUrl() {
24-
ConnectorAPI.initialize(ResourceType.TEST_RESOURCES);
25-
26-
System.out.println(ConnectorAPI.YamlUtils().getURL());
27-
}
28-
2922
public static void main(String[] args) {
3023
ConnectorAPI.initialize(ResourceType.TEST_RESOURCES);
3124

@@ -55,4 +48,22 @@ public static void main(String[] args) {
5548
}
5649
}
5750

51+
52+
@Test
53+
public void testGetExtraData() {
54+
ConnectorAPI.initialize(ResourceType.TEST_RESOURCES);
55+
56+
try {
57+
ApiResponse<Void> response = ConnectorAPI.JobGetInfos()
58+
.getRoutes(VersionType.V1_BRANCH, MethodType.GET, "example")
59+
.getResponse();
60+
61+
System.out.println("Data: " + response.getExtra("example"));
62+
63+
} catch (Exception e) {
64+
System.err.println("Erreur lors de l'appel API: " + e.getMessage());
65+
e.printStackTrace();
66+
}
67+
}
68+
5869
}

0 commit comments

Comments
 (0)