From 00b546c3b9df47b8c1d3cc5d80ea8c4028706033 Mon Sep 17 00:00:00 2001 From: Sandro Date: Mon, 10 Nov 2025 18:54:01 +0100 Subject: [PATCH 1/2] Add AtomicFactory class and refactor JobGetInfos response method --- build.gradle | 2 +- .../github/example/ExampleUsages.java | 107 ------------------ .../fr/sandro642/github/jobs/JobGetInfos.java | 2 +- .../github/provider/AtomicFactory.java | 18 +++ .../fr/sandro642/github/test/MainTest.java | 43 ++++--- 5 files changed, 46 insertions(+), 126 deletions(-) delete mode 100644 src/main/java/fr/sandro642/github/example/ExampleUsages.java create mode 100644 src/main/java/fr/sandro642/github/provider/AtomicFactory.java diff --git a/build.gradle b/build.gradle index c8ed704..4263845 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group = 'fr.sandro642.github' -version = '0.4.3.1-STABLE' +version = '0.4.4-DEV_BUILD' // Générer une classe de version automatiquement task generateVersionClass { diff --git a/src/main/java/fr/sandro642/github/example/ExampleUsages.java b/src/main/java/fr/sandro642/github/example/ExampleUsages.java deleted file mode 100644 index 2caacea..0000000 --- a/src/main/java/fr/sandro642/github/example/ExampleUsages.java +++ /dev/null @@ -1,107 +0,0 @@ -package fr.sandro642.github.example; - -import fr.sandro642.github.ConnectLib; -import fr.sandro642.github.api.ApiFactory; -import fr.sandro642.github.enums.LangType; -import fr.sandro642.github.enums.MethodType; -import fr.sandro642.github.enums.ResourceType; -import fr.sandro642.github.enums.VersionType; -import fr.sandro642.github.provider.RouteImport; - -import java.util.Map; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.TimeUnit; - -/** - * ExampleUsages is a placeholder class that can be used to demonstrate how to use the ConnectLib library. - * It can contain example methods or code snippets that show how to interact with the API, handle responses, - * and utilize the features provided by the ConnectLib library. - * - * @author Sandro642 - * @version 1.0 - */ - -public class ExampleUsages { - - private ConnectLib connectLib = new ConnectLib(); - - public enum ExampleRoutes implements RouteImport { - EXAMPLE_ROUTE("/api/example/route"); - - final String route; - - ExampleRoutes(String route) { - this.route = route; - } - - @Override - public String getRoute() { - return route; - } - } - - public void initializeLib() { - - // Optionally, you can specify routes if needed - connectLib.init(ResourceType.MAIN_RESOURCES, LangType.FRENCH, ExampleRoutes.class); - // You can also initialize without specifying routes - connectLib.init(ResourceType.MAIN_RESOURCES, LangType.FRENCH); - } - - // Example method to demonstrate usage - public void exampleMethodSync() { - try { - // This method can be used to demonstrate how to interact with the API - // For example, making a GET request to the EXAMPLE_ROUTE - CompletableFuture apiFactoryCompletableFuture = connectLib.JobGetInfos() - .getRoutes(VersionType.V1_BRANCH, MethodType.GET, ExampleRoutes.EXAMPLE_ROUTE) - .getResponse(); - - ApiFactory response = apiFactoryCompletableFuture.get(5, TimeUnit.SECONDS); - - System.out.println(response.display()); - System.out.println("Response Code: " + response.getData("code")); - System.out.println("Response Message: " + response.getData("message")); - System.out.println("Response Data: " + response.getSpecData("data", "exampleKey")); - System.out.println("Status Code: " + response.getStatusCode()); - } catch (Exception e) { - e.printStackTrace(); - } - } - - // Example method to demonstrate asynchronous usage - public void exampleMethodAsync() { - try { - // This method can be used to demonstrate how to interact with the API asynchronously - - CompletableFuture apiFactoryCompletableFuture = connectLib.JobGetInfos() - .getRoutes(VersionType.V1_BRANCH, MethodType.GET, ExampleRoutes.EXAMPLE_ROUTE) - .getResponse(); - - ApiFactory response = apiFactoryCompletableFuture.get(5, TimeUnit.SECONDS); - - System.out.println(response.display()); - System.out.println("Response Code: " + response.getData("code")); - System.out.println("Response Message: " + response.getData("message")); - System.out.println("Response Data: " + response.getSpecData("data", "exampleKey")); - } catch (Exception e) { - e.printStackTrace(); - } - } - - // Example to use all methods in JobGetInfos - public void exampleJobGetInfos() { - Map body = Map.of(); - Map params = Map.of(); - Map query = Map.of(); - - connectLib.JobGetInfos().getRoutes(VersionType.V1_BRANCH, MethodType.GET, ExampleRoutes.EXAMPLE_ROUTE, body, params, query); - connectLib.JobGetInfos().getRoutes(VersionType.V1_BRANCH, MethodType.POST, ExampleRoutes.EXAMPLE_ROUTE, body); - connectLib.JobGetInfos().getRoutes(VersionType.V1_BRANCH, MethodType.PUT, ExampleRoutes.EXAMPLE_ROUTE, null, params, query); - connectLib.JobGetInfos().getRoutes(VersionType.V1_BRANCH, MethodType.PATCH, ExampleRoutes.EXAMPLE_ROUTE); - connectLib.JobGetInfos().getRoutes(MethodType.GET, ExampleRoutes.EXAMPLE_ROUTE, body, params); - connectLib.JobGetInfos().getRoutes(MethodType.POST, ExampleRoutes.EXAMPLE_ROUTE, body); - connectLib.JobGetInfos().getRoutes(MethodType.DELETE, ExampleRoutes.EXAMPLE_ROUTE); - } - -} diff --git a/src/main/java/fr/sandro642/github/jobs/JobGetInfos.java b/src/main/java/fr/sandro642/github/jobs/JobGetInfos.java index 0f04bf3..fc972ac 100644 --- a/src/main/java/fr/sandro642/github/jobs/JobGetInfos.java +++ b/src/main/java/fr/sandro642/github/jobs/JobGetInfos.java @@ -270,7 +270,7 @@ public JobGetInfos urlBranch(URLProvider urlBranch) { * makes the API call, and returns the response as an ApiFactory object. * @return ApiFactory containing the response from the API, or null if an error occurs. */ - public CompletableFuture getResponse() { + public CompletableFuture execute() { try { String route = (String) connectLib.StoreAndRetrieve().store.get("currentRoute"); MethodType method = (MethodType) connectLib.StoreAndRetrieve().store.get("currentMethod"); diff --git a/src/main/java/fr/sandro642/github/provider/AtomicFactory.java b/src/main/java/fr/sandro642/github/provider/AtomicFactory.java new file mode 100644 index 0000000..fb272da --- /dev/null +++ b/src/main/java/fr/sandro642/github/provider/AtomicFactory.java @@ -0,0 +1,18 @@ +package fr.sandro642.github.provider; + +import fr.sandro642.github.api.ApiFactory; + +import java.util.Map; + +public abstract class AtomicFactory { + + private ApiFactory apiFactory; + + protected void getPhysx(ApiFactory apiFactory) { + this.apiFactory = apiFactory; + } + + protected Map rawPhysx() { + return apiFactory.getRawData(); + } +} diff --git a/src/test/java/fr/sandro642/github/test/MainTest.java b/src/test/java/fr/sandro642/github/test/MainTest.java index f284d4a..5ddba4e 100644 --- a/src/test/java/fr/sandro642/github/test/MainTest.java +++ b/src/test/java/fr/sandro642/github/test/MainTest.java @@ -6,6 +6,7 @@ import fr.sandro642.github.enums.LangType; import fr.sandro642.github.enums.MethodType; import fr.sandro642.github.enums.ResourceType; +import fr.sandro642.github.provider.AtomicFactory; import fr.sandro642.github.provider.RouteImport; import fr.sandro642.github.provider.URLProvider; import fr.sandro642.github.provider.VersionProvider; @@ -43,6 +44,19 @@ public String getRoute() { } } + public class ClassheritFromFactory extends AtomicFactory { + + + + public ClassheritFromFactory(ApiFactory apiFactory) { + getPhysx(apiFactory); + } + + public Object getContent() { + return rawPhysx().get("content"); + } + } + /** * Example of URL branches, you can add multiple branches if you have multiple environments (dev, prod, etc.) */ @@ -94,7 +108,7 @@ public static void main(String[] args) { CompletableFuture apiFactoryCompletableFuture = connectLib.JobGetInfos() .getRoutes(MethodType.GET, TestRoutes.HELLO) - .getResponse(); + .execute(); ApiFactory response = apiFactoryCompletableFuture.get(5, TimeUnit.SECONDS); @@ -118,7 +132,7 @@ public void testUseFullRoute() { CompletableFuture factoryCompletableFuture = connectLib.JobGetInfos() .getRoutes(MethodType.GET, TestRoutes.GREET, null, null, query) - .getResponse(); + .execute(); ApiFactory response = factoryCompletableFuture.get(5, TimeUnit.SECONDS); @@ -145,7 +159,7 @@ public void testLangType() { */ //.urlBranch(ExampleUrlBranch.LOCALHOST) - .getResponse(); + .execute(); ApiFactory response = factoryCompletableFuture.get(5, TimeUnit.SECONDS); @@ -167,7 +181,7 @@ public void testSpecData() { CompletableFuture apiFactoryCompletableFuture = connectLib.JobGetInfos() .getRoutes(TestCustomVersion.V1_API, MethodType.GET, TestRoutes.REQUEST_TOKEN) .urlBranch(ExampleUrlBranch.PROD) - .getResponse(); + .execute(); ApiFactory apiFactory = apiFactoryCompletableFuture.get(5, TimeUnit.SECONDS); @@ -186,23 +200,18 @@ public void testSpecData() { public void startAppServices() { try { connectLib.Logger().showLogs(); - connectLib.init(ResourceType.TEST_RESOURCES, LangType.ENGLISH, TestRoutes.class) - .webServices(8080, "TestDashboard"); + connectLib.init(ResourceType.TEST_RESOURCES, LangType.ENGLISH, TestRoutes.class); + //.webServices(8080, "TestDashboard"); - CompletableFuture apiFactoryCompletableFuture = connectLib.JobGetInfos() + CompletableFuture apiFactoryCompletableFuture = connectLib.JobGetInfos() .getRoutes(MethodType.GET, TestRoutes.HELLO) - .getResponse(); - - apiFactoryCompletableFuture = connectLib.JobGetInfos() - .getRoutes(TestCustomVersion.V1_API ,MethodType.GET, TestRoutes.REQUEST_TOKEN) - .urlBranch(ExampleUrlBranch.PROD) - .getResponse(); - - ApiFactory apiFactory = apiFactoryCompletableFuture.get(5, TimeUnit.SECONDS); + .urlBranch(ExampleUrlBranch.POST_PROD) + .execute() + .thenApply(ClassheritFromFactory::new); - System.out.println("Response: " + apiFactory.display()); + ClassheritFromFactory classheritFromFactory = apiFactoryCompletableFuture.get(5, TimeUnit.SECONDS); - Thread.sleep(20000); + System.out.println("Response: " + classheritFromFactory.getContent()); } catch (Exception e) { e.printStackTrace(); From 867b793e9d3f95e7bb1769db89085c03f4cc448b Mon Sep 17 00:00:00 2001 From: Sandro Soria Date: Mon, 10 Nov 2025 18:57:15 +0100 Subject: [PATCH 2/2] Fix branch name case in workflow configuration --- .github/workflows/work-jar.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/work-jar.yml b/.github/workflows/work-jar.yml index 207f555..c2e888f 100644 --- a/.github/workflows/work-jar.yml +++ b/.github/workflows/work-jar.yml @@ -3,7 +3,7 @@ on: push: branches: - main - - Feature/AtomicFactory + - feature/AtomicFactory permissions: contents: write pages: write