Implement async db access in admin
This commit is contained in:
@ -1,10 +1,11 @@
|
||||
"""Frontend dependencies."""
|
||||
|
||||
from dataclasses import dataclass
|
||||
from collections.abc import Callable, Awaitable
|
||||
from collections.abc import AsyncGenerator, Callable, Awaitable
|
||||
from typing import Self
|
||||
|
||||
from sqlalchemy.orm import Session
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from jinja2_fragments.fastapi import Jinja2Blocks
|
||||
from fastapi import Request
|
||||
|
||||
@ -14,6 +15,7 @@ from sshecret_admin.auth.models import User
|
||||
|
||||
UserTokenDep = Callable[[Request, Session], Awaitable[User]]
|
||||
UserLoginDep = Callable[[Request, Session], Awaitable[bool]]
|
||||
AsyncSessionDep = Callable[[], AsyncGenerator[AsyncSession, None]]
|
||||
|
||||
|
||||
@dataclass
|
||||
@ -25,6 +27,7 @@ class FrontendDependencies(BaseDependencies):
|
||||
get_user_from_access_token: UserTokenDep
|
||||
get_user_from_refresh_token: UserTokenDep
|
||||
get_login_status: UserLoginDep
|
||||
get_async_session: AsyncSessionDep
|
||||
|
||||
@classmethod
|
||||
def create(
|
||||
@ -35,6 +38,7 @@ class FrontendDependencies(BaseDependencies):
|
||||
get_user_from_access_token: UserTokenDep,
|
||||
get_user_from_refresh_token: UserTokenDep,
|
||||
get_login_status: UserLoginDep,
|
||||
get_async_session: AsyncSessionDep
|
||||
) -> Self:
|
||||
"""Create from base dependencies."""
|
||||
return cls(
|
||||
@ -45,4 +49,5 @@ class FrontendDependencies(BaseDependencies):
|
||||
get_user_from_access_token=get_user_from_access_token,
|
||||
get_user_from_refresh_token=get_user_from_refresh_token,
|
||||
get_login_status=get_login_status,
|
||||
get_async_session=get_async_session,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user