scansion/serve.lua

Mon, 17 Sep 2018 22:05:59 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Mon, 17 Sep 2018 22:05:59 +0100
changeset 154
855a32aa56ab
parent 137
091212cef52a
child 156
807dc9c0f140
permissions
-rw-r--r--

main: Remove debug print()

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