Files
folkugat-web/folkugat_web/api/auth.py
2025-03-09 20:00:54 +01:00

35 lines
1.1 KiB
Python

from typing import Annotated, Optional
from fastapi import Cookie, Form, Request
from folkugat_web.api import 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("/api/nota")
def nota_input(request: Request, value: Optional[str] = None):
return nota.input(request, value)
@router.post("/api/nota")
def login(request: Request, value: Annotated[Optional[str], Form()] = None,
nota_folkugat: Annotated[Optional[str], 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