From a3752a26e96d552b8d7fc037549a969f594a0f26 Mon Sep 17 00:00:00 2001 From: Lucy Ciara Herud-Thomassen <86323303+LucyCiara@users.noreply.github.com> Date: Mon, 2 Mar 2026 15:41:12 +0100 Subject: [PATCH] feat&chore[Wrapper]: Add APIWrapper child class of Wrapper, and update .gitignore and POM Added a child class of Wrapper that specializes in APIs, and updated .gitignore to ignore more artifacts, and updated .pom to use shade-plugin to build fat jars --- .gitignore | 7 ++++ pom.xml | 36 ++++++++++++---- .../edu/group5/app/control/OrgAPIWrapper.java | 42 +++++++++++++++++++ .../java/edu/group5/app/control/Wrapper.java | 2 + 4 files changed, 80 insertions(+), 7 deletions(-) create mode 100644 src/main/java/edu/group5/app/control/OrgAPIWrapper.java diff --git a/.gitignore b/.gitignore index 48a9ee7..07e3800 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,10 @@ out/ ## VSCode ############################## .vscode/ + +############################## +## Misc +############################## +.settings/* +.project +.classpath diff --git a/pom.xml b/pom.xml index e4e534e..d78f0c3 100644 --- a/pom.xml +++ b/pom.xml @@ -39,13 +39,13 @@ 7.0.2 - - - com.fasterxml.jackson.core - jackson-databind - 2.21.1 - compile - + + + tools.jackson.core + jackson-databind + 3.1.0 + compile + @@ -96,6 +96,28 @@ maven-javadoc-plugin 3.12.0 + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.1 + + + package + + shade + + + + + edu.group5.app.App + + + + + + diff --git a/src/main/java/edu/group5/app/control/OrgAPIWrapper.java b/src/main/java/edu/group5/app/control/OrgAPIWrapper.java new file mode 100644 index 0000000..9123c69 --- /dev/null +++ b/src/main/java/edu/group5/app/control/OrgAPIWrapper.java @@ -0,0 +1,42 @@ +package edu.group5.app.control; + +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; + +import tools.jackson.databind.ObjectMapper; + +public class OrgAPIWrapper extends Wrapper { + private String urlString; + private Object[] data; + + public OrgAPIWrapper(String urlString) { + this.urlString = urlString; + } + + @Override + public boolean importData() { + URI uri = URI.create(this.urlString); + HttpClient client = HttpClient.newHttpClient(); + HttpRequest request = HttpRequest.newBuilder() + .uri(uri) + .GET() + .build(); + + try { + HttpResponse response = client.send( + request, HttpResponse.BodyHandlers.ofString()); + this.data = new ObjectMapper().readValue(response.body(), Object[].class); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + @Override + public Object[] getData() { + return this.data; + } +} diff --git a/src/main/java/edu/group5/app/control/Wrapper.java b/src/main/java/edu/group5/app/control/Wrapper.java index 584507c..e8a8365 100644 --- a/src/main/java/edu/group5/app/control/Wrapper.java +++ b/src/main/java/edu/group5/app/control/Wrapper.java @@ -6,4 +6,6 @@ protected Wrapper() { } public abstract boolean importData(); + + public abstract Object getData(); }