Files
folkugat-web/folkugat_web/api/routes/auth.py
2025-07-28 22:45:45 +02:00

37 lines
1.1 KiB
Python

from typing import Annotated
from fastapi import Cookie, Form, Request
from folkugat_web.api.router import get_router
from folkugat_web.config import auth as config
from folkugat_web.fragments import nota
from folkugat_web.services import auth as service
router = get_router()
@router.get("/api/nota")
def nota_input(request: Request, value: str | None = None):
return nota.input(request, value)
@router.post("/api/nota")
def login(request: Request, value: Annotated[str | None, Form()] = None,
nota_folkugat: Annotated[str | None, Cookie()] = None):
logged_in = service.logged_in(nota_folkugat)
new_login = service.login(value)
if new_login and not logged_in:
response = nota.nota(request)
response.set_cookie(key=config.COOKIE_NAME,
value=service.build_token(),
max_age=config.COOKIE_MAX_AGE)
else:
response = nota.footer(request, value, logged_in)
return response
@router.post("/api/logout")
def logout(request: Request):
response = nota.nota(request)
response.delete_cookie(key=config.COOKIE_NAME)
return response