43 lines
1.0 KiB
Python
43 lines
1.0 KiB
Python
from functools import lru_cache
|
|
import logging as logger
|
|
from fastapi import APIRouter, Header, Request, Depends
|
|
|
|
from .auth import get_current_username
|
|
from .digital_ocean import update_domain
|
|
from . import config
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@lru_cache()
|
|
def get_settings():
|
|
return config.Settings
|
|
|
|
|
|
@router.get("/update")
|
|
def update_view(
|
|
domain: str,
|
|
request: Request,
|
|
ip: str = None,
|
|
x_forwarded_for: str = Header(None),
|
|
username: str = Depends(get_current_username),
|
|
settings: config.Settings = Depends(get_settings),
|
|
):
|
|
logger.info("Here is your log")
|
|
if ip is not None:
|
|
current_ip = ip
|
|
elif x_forwarded_for is not None:
|
|
current_ip = x_forwarded_for
|
|
else:
|
|
current_ip = request.ip
|
|
name, domain = domain.split(".", maxsplit=1)
|
|
update_domain(
|
|
domain, name, current_ip, settings.api_url_base, settings.api_token, logger
|
|
)
|
|
return {
|
|
"domain": domain,
|
|
"name": name,
|
|
"current_ip": current_ip,
|
|
"username": username
|
|
}
|