From 58965ef9e2ee22a35141ec9c6052f103dda865ee Mon Sep 17 00:00:00 2001 From: Lucy Ciara Herud-Thomassen <86323303+LucyCiara@users.noreply.github.com> Date: Sun, 1 Mar 2026 16:56:22 +0100 Subject: [PATCH 1/3] feat[Wrapper]: add abstract class for wrappers --- src/main/java/edu/group5/app/control/Wrapper.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/group5/app/control/Wrapper.java b/src/main/java/edu/group5/app/control/Wrapper.java index 9655c26..56efc11 100644 --- a/src/main/java/edu/group5/app/control/Wrapper.java +++ b/src/main/java/edu/group5/app/control/Wrapper.java @@ -1,5 +1,10 @@ package edu.group5.app.control; -public class Wrapper { - +abstract class Wrapper { + protected Object data; + + protected Wrapper() { + } + + public abstract boolean importData(); } From d9dff24a20feb4001075c2a7be32ada811f91e4f Mon Sep 17 00:00:00 2001 From: Lucy Ciara Herud-Thomassen <86323303+LucyCiara@users.noreply.github.com> Date: Sun, 1 Mar 2026 20:45:32 +0100 Subject: [PATCH 2/3] feat[OrgAPIWrapper]: add a wrapper for APIs --- pom.xml | 12 +++++++++++- src/main/java/edu/group5/app/App.java | 11 ++++++++--- src/main/java/edu/group5/app/control/Wrapper.java | 1 - 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index b0f6764..e4e534e 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,17 @@ spring-security-crypto 7.0.2 - + + + + com.fasterxml.jackson.core + jackson-databind + 2.21.1 + compile + + + + diff --git a/src/main/java/edu/group5/app/App.java b/src/main/java/edu/group5/app/App.java index 7fd22a6..4f4364f 100644 --- a/src/main/java/edu/group5/app/App.java +++ b/src/main/java/edu/group5/app/App.java @@ -1,10 +1,15 @@ package edu.group5.app; +import edu.group5.app.control.OrgAPIWrapper; + /** * Hello world! */ public class App { - public static void main(String[] args) { - System.out.println("Hello World!"); - } + public static void main(String[] args) { + OrgAPIWrapper orgWrap = new OrgAPIWrapper("https://app.innsamlingskontrollen.no/api/public/v1/all"); + System.out.println(); + System.out.println(); + orgWrap.importData(); + } } diff --git a/src/main/java/edu/group5/app/control/Wrapper.java b/src/main/java/edu/group5/app/control/Wrapper.java index 56efc11..584507c 100644 --- a/src/main/java/edu/group5/app/control/Wrapper.java +++ b/src/main/java/edu/group5/app/control/Wrapper.java @@ -1,7 +1,6 @@ package edu.group5.app.control; abstract class Wrapper { - protected Object data; protected Wrapper() { } 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 3/3] 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(); }