scansion/serve.lua

changeset 137
091212cef52a
child 156
807dc9c0f140
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scansion/serve.lua	Tue Sep 11 23:27:23 2018 +0100
@@ -0,0 +1,47 @@
+local verse = require "verse";
+
+local server = require "net.server";
+local http_server = require "net.http.server";
+local http = require "net.http";
+local json = require "util.json";
+
+function handle_request()
+	return "Hello world";
+end
+
+local function run(config, run_script)
+	function handle_run_request(event)
+		local data = json.decode(event.request.body);
+		if not data then
+			return 400;
+		end
+	
+		if not data.script then
+			return 400;
+		end
+
+		local ok, ret = pcall(run_script, "web", data.script);
+	
+		if not ok then
+			return json.encode({ error = true, message = ret });
+		end
+	
+		return json.encode(ret);
+	end
+	
+	http_server.add_host("localhost");
+	http_server.set_default_host("localhost");
+	http_server.add_handler("GET localhost/*", handle_request);
+	http_server.add_handler("POST localhost/run", handle_run_request);
+	http_server.add_handler("http-error", function (e)
+		verse.log("error", "HTTP error: %s", e.code);
+	end);
+	--http_server.add_handler("GET localhost/stream/*", handle_stream_request);
+	http_server.listen_on(config.port or 8007);
+	verse.log("debug", "Ready")
+	verse.loop();
+end
+
+return {
+	run = run;
+}

mercurial