Skip to content

Commit 246a8d6

Browse files
committed
Apply di to auth module
1 parent ad5cbf9 commit 246a8d6

2 files changed

Lines changed: 23 additions & 7 deletions

File tree

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1-
from fastapi import APIRouter, Response
1+
from dependency_injector.wiring import Provide, inject
2+
from fastapi import APIRouter, Depends, Response
23

3-
from app.auth.adapter.input.api.v1.request import RefreshTokenRequest, VerifyTokenRequest
4+
from app.auth.adapter.input.api.v1.request import (
5+
RefreshTokenRequest,
6+
VerifyTokenRequest,
7+
)
48
from app.auth.adapter.input.api.v1.response import RefreshTokenResponse
5-
from app.auth.application.service.jwt import JwtService
9+
from app.auth.domain.usecase.jwt import JwtUseCase
10+
from app.container import Container
611

712
auth_router = APIRouter()
813

@@ -11,14 +16,22 @@
1116
"/refresh",
1217
response_model=RefreshTokenResponse,
1318
)
14-
async def refresh_token(request: RefreshTokenRequest):
15-
token = await JwtService().create_refresh_token(
19+
@inject
20+
async def refresh_token(
21+
request: RefreshTokenRequest,
22+
usecase: JwtUseCase = Depends(Provide[Container.jwt_service]),
23+
):
24+
token = await usecase.create_refresh_token(
1625
token=request.token, refresh_token=request.refresh_token
1726
)
1827
return {"token": token.token, "refresh_token": token.refresh_token}
1928

2029

2130
@auth_router.post("/verify")
22-
async def verify_token(request: VerifyTokenRequest):
23-
await JwtService().verify_token(token=request.token)
31+
@inject
32+
async def verify_token(
33+
request: VerifyTokenRequest,
34+
usecase: JwtUseCase = Depends(Provide[Container.jwt_service]),
35+
):
36+
await usecase.verify_token(token=request.token)
2437
return Response(status_code=200)

app/container.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from dependency_injector.containers import DeclarativeContainer, WiringConfiguration
22
from dependency_injector.providers import Factory, Singleton
33

4+
from app.auth.application.service.jwt import JwtService
45
from app.user.adapter.output.persistence.repository_adapter import UserRepositoryAdapter
56
from app.user.adapter.output.persistence.sqlalchemy.user import UserSQLAlchemyRepo
67
from app.user.application.service.user import UserService
@@ -12,3 +13,5 @@ class Container(DeclarativeContainer):
1213
user_repo = Singleton(UserSQLAlchemyRepo)
1314
user_repo_adapter = Factory(UserRepositoryAdapter, user_repo=user_repo)
1415
user_service = Factory(UserService, repository=user_repo_adapter)
16+
17+
jwt_service = Factory(JwtService)

0 commit comments

Comments
 (0)