bifrost/bifrost/views.py

29 lines
1.1 KiB
Python

from sanic.log import logger
from sanic.response import json
from bifrost.digital_ocean import update_domain
async def update_view(request):
logger.info('Here is your log')
if 'domain' not in request.args or len(request.args['domain']) != 1:
return json({"message": "Domain error"})
domain = request.args['domain'][0]
if 'ip' in request.args and len(request.args['ip']) == 1:
current_ip = request.args['ip'][0]
else:
if 'X-Forwarded-For' in request.headers:
current_ip = request.headers['X-Forwarded-For']
else:
current_ip = request.ip
name, domain = domain.split('.', maxsplit=1)
update_domain(domain, name, current_ip, request.app.config.API_URL_BASE, request.app.config.API_TOKEN, logger)
return json({"domain": domain, "name": name, "current_ip": current_ip, "api_base": request.app.config.API_URL_BASE, "api_token": request.app.config.API_TOKEN})
# @forbidden_view_config()
# def basic_challenge(request):
# response = HTTPUnauthorized()
# response.headers.update(forget(request))
# return response