diff --git a/server.py b/server.py index d0d2410..4b62d80 100644 --- a/server.py +++ b/server.py @@ -1,11 +1,47 @@ +import json + from sanic import Sanic -from sanic.response import html +from sanic.response import html, json as json_response +from sanic.exceptions import InvalidUsage app = Sanic() +@app.route("/check/", methods=["POST"]) +async def check_http(request): + from ipdb import set_trace; set_trace() + ip = request.ip + + try: + data = request.json + except InvalidUsage: + return json_response({ + "status": "error", + "content": "InvalidUsage, body isn't proper json" + }) + + if "domain" not in data: + return json_response({"status": "error", "content": "request must specify a domain"}) + + domain = data["domain"] + + # TODO DNS check + + # [x] - get ip + # [x] - get request json + # [x] - in request json get domain target + # [ ] - check dns that domain == ip + # [ ] - if not, complain + # [ ] - if everything is ok, try to get with http + # [ ] - ADD TIMEOUT + # [ ] - try/catch, if everything is ok → response ok + # [ ] - otherwise reponse with exception + + return json_response({"status": "ok"}) + + @app.route("/") -async def test(request): +async def main(request): return html("You aren't really supposed to use this website using your browser.

It's a small server to check if a YunoHost instance can be reached by http before trying to instal a LE certificate.")