File tree 6 files changed +20
-11
lines changed
6 files changed +20
-11
lines changed Original file line number Diff line number Diff line change @@ -20,7 +20,7 @@ async def get_logic() -> AsyncGenerator[_Logic, None]:
20
20
21
21
22
22
async def get_user (
23
- token : Annotated [str , Depends (APIKeyHeader (name = " access-token" ))],
23
+ token : Annotated [str , Depends (APIKeyHeader (name = ' access-token' ))],
24
24
logic : Logic ,
25
25
) -> _User | None :
26
26
return await logic .users .retrieve_by_token (token )
Original file line number Diff line number Diff line change 4
4
from app .models .auth import AccessToken
5
5
from app .models .users .user import UserCreate
6
6
7
- router = APIRouter (prefix = " /token" )
7
+ router = APIRouter (prefix = ' /token' )
8
8
9
9
10
- @router .post ("/" , response_model = AccessToken )
10
+ @router .post ('/' , response_model = AccessToken )
11
11
async def token (data : UserCreate , logic : deps .Logic ):
12
12
"""
13
13
Retrieve new access token
14
14
"""
15
15
return await logic .auth .generate_token (data )
16
16
17
17
18
- __all__ = [" router" ]
18
+ __all__ = [' router' ]
Original file line number Diff line number Diff line change 4
4
5
5
from typing import Self
6
6
7
- from sqlalchemy .ext .asyncio import AsyncEngine , async_sessionmaker , create_async_engine
7
+ from sqlalchemy .ext .asyncio import (AsyncEngine , async_sessionmaker ,
8
+ create_async_engine )
8
9
from sqlmodel .ext .asyncio .session import AsyncSession
9
10
10
11
from app import repositories as repos
Original file line number Diff line number Diff line change 9
9
10
10
11
11
class Auth :
12
- def __init__ (self , logic : " Logic" ):
12
+ def __init__ (self , logic : ' Logic' ):
13
13
self .logic = logic
14
14
15
15
async def generate_token (self , data : UserCreate ) -> AccessToken | None :
16
- if (user := await self .logic .db .user .retrieve_by_email (data .email )) is None :
16
+ if (
17
+ user := await self .logic .db .user .retrieve_by_email (data .email )
18
+ ) is None :
17
19
raise exps .UserNotFoundException ()
18
20
if not self .logic .security .pwd .checkpwd (data .password , user .password ):
19
21
raise exps .UserIsCorrectException ()
20
- access_token = self .logic .security .jwt .encode_token ({"id" : user .id }, 1440 )
22
+ access_token = self .logic .security .jwt .encode_token (
23
+ {'id' : user .id }, 1440
24
+ )
21
25
return AccessToken (token = access_token )
Original file line number Diff line number Diff line change @@ -17,6 +17,6 @@ def __init__(self, db: Database):
17
17
18
18
@classmethod
19
19
@asynccontextmanager
20
- async def create (cls ) -> AsyncGenerator [" Logic" , None ]:
20
+ async def create (cls ) -> AsyncGenerator [' Logic' , None ]:
21
21
async with Database () as db :
22
22
yield cls (db )
Original file line number Diff line number Diff line change 8
8
9
9
10
10
class Users :
11
- def __init__ (self , logic : " Logic" ):
11
+ def __init__ (self , logic : ' Logic' ):
12
12
self .logic = logic
13
13
14
14
async def create (self , data : UserCreate ) -> User | None :
@@ -21,6 +21,10 @@ async def create(self, data: UserCreate) -> User | None:
21
21
22
22
async def retrieve_by_token (self , token : str ) -> User | None :
23
23
payload = self .logic .security .jwt .decode_token (token )
24
- if not (user := await self .logic .db .user .retrieve_one (ident = payload .get ("id" ))):
24
+ if not (
25
+ user := await self .logic .db .user .retrieve_one (
26
+ ident = payload .get ('id' )
27
+ )
28
+ ):
25
29
raise exps .UserNotFoundException ()
26
30
return user
You can’t perform that action at this time.
0 commit comments