aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/edu/brown/cs/student/term/Main.java129
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