cookie_person now mandatory
This commit is contained in:
parent
5a85250574
commit
a6eb819057
1 changed files with 11 additions and 6 deletions
17
api/deps.py
17
api/deps.py
|
|
@ -3,7 +3,7 @@ from __future__ import annotations
|
||||||
from typing import Annotated, AsyncGenerator, Optional
|
from typing import Annotated, AsyncGenerator, Optional
|
||||||
|
|
||||||
import aiosqlite
|
import aiosqlite
|
||||||
from fastapi import Cookie, Depends, Request
|
from fastapi import Cookie, Depends, Request, HTTPException
|
||||||
from fastapi.responses import JSONResponse
|
from fastapi.responses import JSONResponse
|
||||||
|
|
||||||
import db
|
import db
|
||||||
|
|
@ -38,12 +38,17 @@ async def get_db() -> AsyncGenerator[aiosqlite.Connection, None]:
|
||||||
|
|
||||||
|
|
||||||
async def cookie_person(
|
async def cookie_person(
|
||||||
user_id: Optional[int] = Cookie(None, alias="user_id"),
|
user_id: int = Cookie(..., alias="user_id"),
|
||||||
conn: aiosqlite.Connection = Depends(get_db),
|
conn: aiosqlite.Connection = Depends(get_db),
|
||||||
) -> Optional[persons.Person]:
|
) -> persons.Person:
|
||||||
if user_id is None:
|
"""Return the authenticated user from the user_id cookie or raise 401.
|
||||||
return None
|
|
||||||
return await persons.get_by_id(conn, user_id)
|
All endpoints that depend on this require the cookie to be provided.
|
||||||
|
"""
|
||||||
|
person = await persons.get_by_id(conn, user_id)
|
||||||
|
if not person:
|
||||||
|
raise HTTPException(status_code=401, detail="Unauthorized")
|
||||||
|
return person
|
||||||
|
|
||||||
|
|
||||||
def error_response(request: Optional[Request], status_code: int, message: str) -> JSONResponse:
|
def error_response(request: Optional[Request], status_code: int, message: str) -> JSONResponse:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue