Skip to content

Commit aee8d5a

Browse files
committed
Feature: update project version to 0.1.9.2-STABLE and enhance route handling with improved parameter management
1 parent 8c0cb8f commit aee8d5a

4 files changed

Lines changed: 89 additions & 35 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
}
66

77
group = 'fr.sandro642.github'
8-
version = '0.1.9.1-STABLE' // Version de votre projet
8+
version = '0.1.9.2-STABLE' // Version de votre projet
99

1010
// Ajoutez cette tâche à votre build.gradle
1111
tasks.register('printVersion') {

readme.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Et si vous pensiez que les API étaient compliquées, détrompez-vous ! Avec Con
77
---
88

99
```java
10-
Stable Version : 0.1.9.1-STABLE
10+
Stable Version : 0.1.9.2-STABLE
1111
```
1212

1313
---
@@ -33,6 +33,7 @@ Changelog :
3333
```java
3434
- [0.1.3.9-SNAPSHOT] : Ajout de la sérialisation des données pour une compatibilisation parfaite des données avec les HOOK.
3535
- [0.1.3.17-SNAPSHOT] : Suppresion de la sérialisation des données... Toujours disponible depuis la branche /feature/serializer. Utile si les processus ne sont pas initialisé dans le même environnement.
36+
- [0.1.9.2-STABLE] : Patch de sécurité en utilisant la méthode getRoutes en utilisant une classe enumération pour la routeName : StackOverflowError... + Création des maps selon le type de variable souhaité.
3637
```
3738

3839
---

src/main/java/fr/sandro642/github/jobs/JobGetInfos.java

Lines changed: 73 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,13 @@ public JobGetInfos() {
3333
ConnectorAPI.YamlUtils();
3434
}
3535

36-
private String getRouteName(Enum<?> routeName) {
37-
return routeName.name().toLowerCase();
38-
}
3936
/**
40-
* Récupère les routes depuis le fichier YAML et construit l'URL complète
41-
* @param versionType Version de l'API (V1_BRANCH, V2_BRANCH)
42-
* @param methodType Type de méthode HTTP (GET, POST)
43-
* @param routeName Nom de la route dans le fichier YAML
44-
* @param body Corps de la requête pour POST (peut être null pour GET)
45-
* @param params Paramètres supplémentaires pour la requête (optionnel)
46-
* @return JobGetInfos pour chaînage
37+
* Méthode utilitaire pour obtenir le nom de la route en minuscules.
38+
* @param routeName Nom de la route (Enum)
39+
* @return Nom de la route en minuscules
4740
*/
48-
public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, Enum<?> routeName, Map<String, Object> body, Map<String, Object> params) {
49-
return getRoutes(versionType, methodType, routeName, body, params);
41+
private String getRouteName(Enum<?> routeName) {
42+
return routeName.name().toLowerCase();
5043
}
5144

5245
/**
@@ -56,7 +49,7 @@ public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, Enu
5649
* @param routeName Nom de la route dans le fichier YAML
5750
* @return JobGetInfos pour chaînage
5851
*/
59-
public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, Enum<?> routeName, Map<String, Object> body) {
52+
public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, Enum<?> routeName, Map<String, ?> body) {
6053
return getRoutes(versionType, methodType, getRouteName(routeName), body, null);
6154
}
6255

@@ -88,7 +81,7 @@ public JobGetInfos getRoutes(MethodType methodType, Enum<?> routeName) {
8881
* @param body Corps de la requête pour POST (peut être null pour GET)
8982
* @return JobGetInfos pour chaînage
9083
*/
91-
public JobGetInfos getRoutes(MethodType methodType, Enum<?> routeName, Map<String, Object> body) {
84+
public JobGetInfos getRoutes(MethodType methodType, Enum<?> routeName, Map<String, ?> body) {
9285
return getRoutes(null, methodType, getRouteName(routeName), body, null);
9386
}
9487

@@ -99,7 +92,7 @@ public JobGetInfos getRoutes(MethodType methodType, Enum<?> routeName, Map<Strin
9992
* @param params Paramètres supplémentaires pour la requête
10093
* @return JobGetInfos pour chaînage
10194
*/
102-
public JobGetInfos getRoutes(MethodType methodType, Enum<?> routeName, Map<String, Object> body, Map<String, Object> params) {
95+
public JobGetInfos getRoutes(MethodType methodType, Enum<?> routeName, Map<String, ?> body, Map<String, ?> params) {
10396
return getRoutes(null, methodType, getRouteName(routeName), body, params);
10497
}
10598

@@ -120,7 +113,7 @@ public JobGetInfos getRoutes(MethodType methodType, String routeName) {
120113
* @param body Corps de la requête pour POST (peut être null pour GET)
121114
* @return JobGetInfos pour chaînage
122115
*/
123-
public JobGetInfos getRoutesWithBody(MethodType methodType, String routeName, Map<String, Object> body) {
116+
public JobGetInfos getRoutesWithBody(MethodType methodType, String routeName, Map<String, ?> body) {
124117
return getRoutes(null, methodType, routeName, body, null);
125118
}
126119

@@ -131,7 +124,7 @@ public JobGetInfos getRoutesWithBody(MethodType methodType, String routeName, Ma
131124
* @param params Paramètres supplémentaires pour la requête
132125
* @return JobGetInfos pour chaînage
133126
*/
134-
public JobGetInfos getRoutesWithParams(MethodType methodType, String routeName, Map<String, Object> params) {
127+
public JobGetInfos getRoutesWithParams(MethodType methodType, String routeName, Map<String, ?> params) {
135128
return getRoutes(null, methodType, routeName, null, params);
136129
}
137130

@@ -143,7 +136,7 @@ public JobGetInfos getRoutesWithParams(MethodType methodType, String routeName,
143136
* @param params Paramètres supplémentaires pour la requête
144137
* @return JobGetInfos pour chaînage
145138
*/
146-
public JobGetInfos getRoutesBoth(MethodType methodType, String routeName, Map<String, Object> body, Map<String, Object> params) {
139+
public JobGetInfos getRoutesBoth(MethodType methodType, String routeName, Map<String, ?> body, Map<String, ?> params) {
147140
return getRoutes(null, methodType, routeName, body, params);
148141
}
149142

@@ -166,7 +159,7 @@ public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, Str
166159
* @param body Corps de la requête pour POST (peut être null pour GET)
167160
* @return JobGetInfos pour chaînage
168161
*/
169-
public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, String routeName, Map<String, Object> body) {
162+
public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, String routeName, Map<String, ?> body) {
170163
return getRoutes(versionType, methodType, routeName, body, null);
171164
}
172165

@@ -179,7 +172,66 @@ public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, Str
179172
* @param params Paramètres supplémentaires pour la requête (optionnel)
180173
* @return JobGetInfos pour chaînage
181174
*/
182-
public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, String routeName, Map<String, Object> body, Map<String, Object> params) {
175+
public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, String routeName, Map<String, ?> body, Map<String, ?> params) {
176+
try {
177+
// Récupère la route depuis le fichier YAML
178+
String route = ConnectorAPI.getRoute(routeName);
179+
180+
String fullRoute;
181+
182+
// Vérification de null pour éviter NullPointerException
183+
if (versionType != null && versionType.getVersion() != null) {
184+
// Construit l'URL complète avec la version
185+
fullRoute = "/" + versionType.getVersion() + route;
186+
} else {
187+
// Construit l'URL complète sans version
188+
fullRoute = route;
189+
}
190+
191+
// Remplace les paramètres dans la route si présents
192+
if (params != null && !params.isEmpty()) {
193+
for (Map.Entry<String, ?> entry : params.entrySet()) {
194+
String paramKey = "{" + entry.getKey() + "}";
195+
String paramValue = entry.getValue().toString();
196+
197+
// Remplace toutes les occurrences du paramètre dans la route
198+
fullRoute = fullRoute.replace(paramKey, paramValue);
199+
}
200+
}
201+
202+
// Stocke les informations pour la requête
203+
ConnectorAPI.StoreAndRetrieve().store.put("currentRoute", fullRoute);
204+
ConnectorAPI.StoreAndRetrieve().store.put("currentMethod", methodType);
205+
206+
if (body != null) {
207+
ConnectorAPI.StoreAndRetrieve().store.put("currentBody", body);
208+
}
209+
210+
// Stocke les paramètres si présents
211+
if (params != null) {
212+
ConnectorAPI.StoreAndRetrieve().store.put("currentParams", params);
213+
}
214+
215+
ConnectorAPI.Logger().INFO("Route construite: " + fullRoute);
216+
217+
} catch (Exception e) {
218+
ConnectorAPI.Logger().ERROR("Erreur lors de la construction de la route: " + e.getMessage());
219+
throw new RuntimeException("Erreur lors de la construction de la route", e);
220+
}
221+
222+
return this;
223+
}
224+
225+
/**
226+
* Récupère les routes depuis le fichier YAML et construit l'URL complète
227+
* @param versionType Version de l'API (V1_BRANCH, V2_BRANCH)
228+
* @param methodType Type de méthode HTTP (GET, POST)
229+
* @param routeName Nom de la route dans le fichier YAML
230+
* @param body Corps de la requête pour POST (peut être null pour GET)
231+
* @param params Paramètres supplémentaires pour la requête (optionnel)
232+
* @return JobGetInfos pour chaînage
233+
*/
234+
public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, Enum<?> routeName, Map<String, ?> body, Map<String, ?> params) {
183235
try {
184236
// Récupère la route depuis le fichier YAML
185237
String route = ConnectorAPI.getRoute(routeName);
@@ -197,7 +249,7 @@ public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, Str
197249

198250
// Remplace les paramètres dans la route si présents
199251
if (params != null && !params.isEmpty()) {
200-
for (Map.Entry<String, Object> entry : params.entrySet()) {
252+
for (Map.Entry<String, ?> entry : params.entrySet()) {
201253
String paramKey = "{" + entry.getKey() + "}";
202254
String paramValue = entry.getValue().toString();
203255

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

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import fr.sandro642.github.utils.ConvertEnum;
1010
import org.junit.jupiter.api.Test;
1111

12+
import java.util.Map;
13+
1214
/**
1315
* Main est une classe de test pour vérifier la création du fichier YML et pleins d'autres fonctionnalités de la librairie.
1416
* @author Sandro642
@@ -20,7 +22,8 @@ public class MainTest {
2022

2123
public enum TestRoutes implements ConvertEnum.RouteImport {
2224
VERSION("/api/mcas/info/version"),
23-
INFO("/api/mcas/info/info");
25+
INFO("/api/mcas/info/info"),
26+
UNIX("/api/auth/link/unix/{sessionId}");
2427

2528
final String route;
2629

@@ -70,20 +73,18 @@ public static void main(String[] args) {
7073

7174

7275
@Test
73-
public void testGetExtraData() {
74-
ConnectorAPI.initialize(ResourceType.TEST_RESOURCES);
76+
public void FullObjectTest() {
77+
ConnectorAPI.initialize(ResourceType.TEST_RESOURCES, TestRoutes.class);
7578

76-
try {
77-
ApiResponse response = ConnectorAPI.JobGetInfos()
78-
.getRoutes(VersionType.V1_BRANCH, MethodType.GET, "example")
79-
.getResponse();
79+
Map<String, Boolean> body = Map.of("status", true);
8080

81-
System.out.println("Data: " + response);
81+
Map<String, String> params = Map.of("sessionId", "0233-xgt-7113");
8282

83-
} catch (Exception e) {
84-
System.err.println("Erreur lors de l'appel API: " + e.getMessage());
85-
e.printStackTrace();
86-
}
83+
ApiResponse response = ConnectorAPI.JobGetInfos()
84+
.getRoutes(VersionType.V1_BRANCH, MethodType.POST, TestRoutes.UNIX, body, params)
85+
.getResponse();
86+
87+
System.out.println(response.display());
8788
}
8889

8990
}

0 commit comments

Comments
 (0)