You've already forked RekomenciBackend
feat(): migrate to auth identity
This commit is contained in:
@@ -15,7 +15,7 @@ from fastapi.middleware.cors import CORSMiddleware
|
||||
|
||||
from template_project.web_api.configuration import load_configuration
|
||||
from template_project.web_api.ioc.make import make_ioc
|
||||
from template_project.web_api.routes import healthcheck, user
|
||||
from template_project.web_api.routes import auth, healthcheck
|
||||
|
||||
LOG_CONFIG: Final = {
|
||||
"version": 1,
|
||||
@@ -62,7 +62,7 @@ def make_asgi_application(
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
)
|
||||
app.include_router(user.router)
|
||||
app.include_router(auth.router)
|
||||
app.include_router(healthcheck.router)
|
||||
|
||||
setup_dishka(container=ioc, app=app)
|
||||
|
||||
@@ -17,7 +17,7 @@ class ConnectionProvider(Provider):
|
||||
async def async_session(self, engine: AsyncEngine) -> AsyncIterable[AsyncSession]:
|
||||
session = AsyncSession(
|
||||
bind=engine,
|
||||
expire_on_commit=True,
|
||||
expire_on_commit=False,
|
||||
)
|
||||
async with session:
|
||||
yield session
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from dishka import BaseScope, Provider, Scope, WithParents, provide, provide_all
|
||||
|
||||
from template_project.adapters.data_gateways.access_token import DefaultAccessTokenDataGateway
|
||||
from template_project.adapters.data_gateways.auth_identity import DefaultAuthIdentityDataGateway
|
||||
from template_project.adapters.data_gateways.user import DefaultUserDataGateway
|
||||
from template_project.adapters.unit_of_work import DefaultUnitOfWork
|
||||
|
||||
@@ -12,4 +13,5 @@ class DataGatewayProvider(Provider):
|
||||
data_gateways = provide_all(
|
||||
WithParents[DefaultUserDataGateway],
|
||||
WithParents[DefaultAccessTokenDataGateway],
|
||||
WithParents[DefaultAuthIdentityDataGateway],
|
||||
)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
from dishka import BaseScope, Provider, Scope, provide_all
|
||||
|
||||
from template_project.application.user.interactors.sign_up import UserSignUpInteractor
|
||||
from template_project.application.auth_identity.interactors.sign_up import AuthIdentityInteractor
|
||||
|
||||
|
||||
class InteractorProvider(Provider):
|
||||
scope: BaseScope | None = Scope.REQUEST
|
||||
|
||||
interactors = provide_all(
|
||||
UserSignUpInteractor,
|
||||
AuthIdentityInteractor,
|
||||
)
|
||||
|
||||
+4
-4
@@ -3,8 +3,8 @@ from dishka.integrations.fastapi import DishkaRoute
|
||||
from fastapi import APIRouter
|
||||
from pydantic import BaseModel, SecretStr
|
||||
|
||||
from template_project.application.auth_identity.interactors.sign_up import AuthIdentityInteractor
|
||||
from template_project.application.common.containers import SecretString
|
||||
from template_project.application.user.interactors.sign_up import UserSignUpInteractor
|
||||
|
||||
router = APIRouter(route_class=DishkaRoute)
|
||||
|
||||
@@ -18,12 +18,12 @@ class UserSignUpResponse(BaseModel):
|
||||
access_token: str
|
||||
|
||||
|
||||
@router.post("/user/sign_up")
|
||||
@router.post("/auth/sign_up/email")
|
||||
async def sign_up(
|
||||
request: UserSignUpRequest,
|
||||
interactor: FromDishka[UserSignUpInteractor],
|
||||
interactor: FromDishka[AuthIdentityInteractor],
|
||||
) -> UserSignUpResponse:
|
||||
response_interactor = await interactor.execute(
|
||||
response_interactor = await interactor.sign_up_email(
|
||||
email=request.email, password=SecretString(request.password.get_secret_value())
|
||||
)
|
||||
return UserSignUpResponse(
|
||||
Reference in New Issue
Block a user