diff options
| author | 9308233900 <reagan_hunt@brown.edu> | 2021-04-09 14:06:10 -0700 |
|---|---|---|
| committer | 9308233900 <reagan_hunt@brown.edu> | 2021-04-09 14:06:10 -0700 |
| commit | 3628ded6ad537c01ce51ee9a7ffb008bd1b0e228 (patch) | |
| tree | 6626521b085a511b9aabb42350481253d0573d78 /src/main/java/edu/brown/cs | |
| parent | 12001ff00fddde940de6fb8d26fed3b8e5bc0f8c (diff) | |
server up
Diffstat (limited to 'src/main/java/edu/brown/cs')
| -rw-r--r-- | src/main/java/edu/brown/cs/student/term/Main.java | 129 |
1 files changed, 127 insertions, 2 deletions
diff --git a/src/main/java/edu/brown/cs/student/term/Main.java b/src/main/java/edu/brown/cs/student/term/Main.java index 31bf7a3..b8ff2c9 100644 --- a/src/main/java/edu/brown/cs/student/term/Main.java +++ b/src/main/java/edu/brown/cs/student/term/Main.java @@ -13,6 +13,59 @@ import java.sql.SQLException; import java.sql.Statement; import java.util.HashMap; +import java.io.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import joptsimple.OptionParser; +import joptsimple.OptionSet; +import spark.*; +import spark.template.freemarker.FreeMarkerEngine; + + +import java.io.BufferedReader; +import java.io.InputStreamReader; + +import com.google.common.collect.ImmutableMap; + +import freemarker.template.Configuration; + +//fix +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.*; +import com.google.common.collect.ImmutableMap; +import com.google.gson.Gson; +import joptsimple.OptionParser; +import joptsimple.OptionSet; +import spark.ExceptionHandler; +import spark.ModelAndView; +import spark.QueryParamsMap; +import spark.Request; +import spark.Response; +import spark.Route; +import spark.Filter; +import spark.Spark; +import spark.TemplateViewRoute; +import spark.template.freemarker.FreeMarkerEngine; + +import freemarker.template.Configuration; + + +import org.json.JSONObject; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; + + /** * The Main class of our project. This is where execution begins. */ @@ -44,8 +97,7 @@ public final class Main { OptionSet options = parser.parse(args); if (options.has("gui")) { - //do a gui type thing - //runSparkServer((int) options.valueOf("port")); + runSparkServer((int) options.valueOf("port")); } HashMap<String, Command> commandHashMap = new HashMap<>(); @@ -55,5 +107,78 @@ public final class Main { repl.runREPL(); } + private static FreeMarkerEngine createEngine() { + Configuration config = new Configuration(); + File templates = new File("src/main/resources/spark/template/freemarker"); + try { + config.setDirectoryForTemplateLoading(templates); + } catch (IOException ioe) { + System.out.printf("ERROR: Unable use %s for template loading.%n", + templates); + System.exit(1); + } + return new FreeMarkerEngine(config); + } + + public void runSparkServer(int port) { + Spark.port(port); + Spark.externalStaticFileLocation("src/main/resources/static"); + Spark.exception(Exception.class, new ExceptionPrinter()); + + Spark.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"; + }); + + Spark.before((request, response) -> response.header("Access-Control-Allow-Origin", "*")); + Spark.get("/data", new DataHandler()); + } + + + private static class DataHandler implements Route { + + @Override + public Object handle(Request request, Response response) throws Exception { + String str = request.body(); + JSONObject json = new JSONObject(str); + + String startLat = json.getString("srclat"); + return "ok"; + } + } + + /** + * Display an error page when an exception occurs in the server. + * + */ + private static class ExceptionPrinter implements ExceptionHandler { + @Override + public void handle(Exception e, Request req, Response res) { + res.status(500); + StringWriter stacktrace = new StringWriter(); + try (PrintWriter pw = new PrintWriter(stacktrace)) { + pw.println("<pre>"); + e.printStackTrace(pw); + pw.println("</pre>"); + } + res.body(stacktrace.toString()); + } + } + }
\ No newline at end of file |
