From bd797a5619ea35a5d5af8acbe710850e32bdafc4 Mon Sep 17 00:00:00 2001 From: Steven Tracey Date: Tue, 16 May 2023 16:09:07 -0400 Subject: [PATCH] FINISHED --- .idea/compiler.xml | 2 +- gradle.properties | 2 ++ src/main/java/tech/nevets/vcardgen/Main.java | 18 +++++++++++++----- src/main/java/tech/nevets/vcardgen/VCard.java | 9 +-------- 4 files changed, 17 insertions(+), 14 deletions(-) create mode 100644 gradle.properties diff --git a/.idea/compiler.xml b/.idea/compiler.xml index b589d56..fcb19bf 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..54e4993 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,2 @@ +org.gradle.parallel=true +org.gradle.caching=true \ No newline at end of file diff --git a/src/main/java/tech/nevets/vcardgen/Main.java b/src/main/java/tech/nevets/vcardgen/Main.java index de6cd45..f59ec0f 100644 --- a/src/main/java/tech/nevets/vcardgen/Main.java +++ b/src/main/java/tech/nevets/vcardgen/Main.java @@ -14,25 +14,34 @@ public class Main { port(8080); path("/backend", () -> { - before("/*"); + before("/*", (request, response) -> response.header("Access-Control-Allow-Origin", "*")); + + options("/*", (request, response) -> { + String accessControlRequestHeaders = request.headers("Access-Control-Request-Headers"); + if (accessControlRequestHeaders != null) response.header("Access-Control-Allow-Headers", accessControlRequestHeaders); + + String accessControlRequestMethod = request.headers("Access-Control-Request-Method"); + if (accessControlRequestMethod != null) response.header("Access-Control-Allow-Methods", accessControlRequestMethod); + + return "OK"; + }); + get("/heartbeat", (req, res) -> { res.status(200); res.type("application/json"); - res.header("Access-Control-Allow-Origin", "*"); return "{ \"up\":true }"; }); get("/data/locations", (req, res) -> { res.status(200); res.type("application/json"); - res.header("Access-Control-Allow-Origin", "*"); return new FileInputStream("locations.json"); }); post("/generate", (req, res) -> { res.type("image/png"); - res.header("Access-Control-Allow-Origin", "*"); + res.header("Access-Control-Expose-Headers", "Id"); JsonObject data = new Gson().fromJson(req.body(), JsonObject.class); return new VCard(data).toByteArray(); }); @@ -41,7 +50,6 @@ public class Main { req.attribute("org.eclipse.jetty.multipartConfig", new MultipartConfigElement("/temp")); res.status(200); res.type("application/json"); - res.header("Access-Control-Allow-Origin", "*"); return VCard.getDataFromVCard(req.raw().getPart("card").getInputStream()); }); }); diff --git a/src/main/java/tech/nevets/vcardgen/VCard.java b/src/main/java/tech/nevets/vcardgen/VCard.java index 34986fa..cce001e 100644 --- a/src/main/java/tech/nevets/vcardgen/VCard.java +++ b/src/main/java/tech/nevets/vcardgen/VCard.java @@ -2,21 +2,14 @@ package tech.nevets.vcardgen; import com.google.gson.Gson; import com.google.gson.JsonObject; -import spark.Request; -import spark.Response; -import spark.Route; import javax.imageio.*; import javax.imageio.metadata.IIOMetadata; import javax.imageio.metadata.IIOMetadataNode; -import javax.imageio.stream.ImageInputStream; import javax.imageio.stream.ImageOutputStream; import java.awt.*; import java.awt.image.BufferedImage; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.util.HashMap; import java.util.Map;