From f340da7e02743d0e87768997b9088c8151e0ee02 Mon Sep 17 00:00:00 2001 From: joachimschmidt557 Date: Wed, 17 Jul 2019 12:27:20 +0200 Subject: [PATCH] Add first server code from AuD --- server.nim | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 server.nim diff --git a/server.nim b/server.nim new file mode 100644 index 0000000..2a04dcb --- /dev/null +++ b/server.nim @@ -0,0 +1,23 @@ +import asynchttpserver, asyncdispatch +import osproc + +proc requestHandler(req:Request) {.async.} = + if req.url.path == "/compile": + let (output, exitCode) = execCmdEx("make") + let headers = if exitCode == 0: newHttpHeaders([("Content-Type","application/pdf")]) + else: newHttpHeaders([("Content-Type","text/plain")]) + let content = if exitCode == 0: readFile("Abgabe.pdf") + else: output + await req.respond(Http200, content, headers) + elif req.url.path == "/backup": + let (output, exitCode) = execCmdEx("make backup") + let headers = newHttpHeaders([("Content-Type","text/plain")]) + let content = if exitCode == 0: "Backup succeded" + else: output + await req.respond(Http200, content, headers) + else: + await req.respond(Http404, "Not a valid API call") + +when isMainModule: + var server = newAsyncHttpServer() + waitFor server.serve(Port(8080), requestHandler)