--- /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; +}