This commit is contained in:
joachimschmidt557 2019-07-25 12:21:49 +02:00
parent 33204f1dde
commit 879568cd04

View file

@ -1,24 +1,39 @@
import asynchttpserver, asyncdispatch
import asynchttpserver, asyncdispatch, httpclient
import osproc, strutils, parseopt
proc getContent(pad:string):string =
discard
proc requestHandler(req:Request) {.async.} =
if req.url.path.startsWith("/compile"):
let
padName = req.url.path
content = getContent(padName)
let (output, exitCode) = execCmdEx("make")
let headers = if exitCode == 0: newHttpHeaders([("Content-Type","application/pdf")])
else: newHttpHeaders([("Content-Type","text/plain")])
let pdf = if exitCode == 0: readFile("Abgabe.pdf")
else: output
await req.respond(Http200, pdf, headers)
else:
await req.respond(Http404, "Not a valid API call")
let
padName = req.url.path
content = getContent(padName)
let (output, exitCode) = execCmdEx("make")
let headers = if exitCode == 0: newHttpHeaders([("Content-Type","application/pdf")])
else: newHttpHeaders([("Content-Type","text/plain")])
let pdf = if exitCode == 0: readFile("Abgabe.pdf")
else: output
await req.respond(Http200, pdf, headers)
when isMainModule:
var
p = initOptParser()
port = 8080
etherpadAddress = "http://localhost:9001/"
server = newAsyncHttpServer()
waitFor server.serve(Port(8080), requestHandler)
# Parse command-line args
while true:
p.next()
case p.kind
of cmdEnd: break
of cmdShortOption, cmdLongOption:
case p.key
of "p", "port":
port = p.val.parseInt
of "a", "etherpad-address":
etherpadAddress = p.val
else: discard
of cmdArgument: continue
waitFor server.serve(Port(port), requestHandler)