Tue, 11 Sep 2018 23:27:23 +0100
main, scansion.serve: Add mode that serves /run API for executing scripts
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; }