31 lines
985 B
Python
31 lines
985 B
Python
from __future__ import annotations
|
|
|
|
from fastapi import Depends
|
|
|
|
from app.application.users.use_cases.create_user import CreateUserUseCase
|
|
from app.application.users.use_cases.get_user import GetUserUseCase
|
|
from app.infrastructure.db.sqlalchemy.session import get_sessionmaker
|
|
from app.infrastructure.db.sqlalchemy.uow import SqlAlchemyUnitOfWork
|
|
from app.infrastructure.integrations.email.smtp_sender import SmtpWelcomeEmailSender
|
|
|
|
|
|
def get_uow() -> SqlAlchemyUnitOfWork:
|
|
return SqlAlchemyUnitOfWork(get_sessionmaker())
|
|
|
|
|
|
def get_email_sender() -> SmtpWelcomeEmailSender:
|
|
return SmtpWelcomeEmailSender()
|
|
|
|
|
|
def get_create_user_uc(
|
|
uow: SqlAlchemyUnitOfWork = Depends(get_uow),
|
|
email_sender: SmtpWelcomeEmailSender = Depends(get_email_sender),
|
|
) -> CreateUserUseCase:
|
|
return CreateUserUseCase(uow=uow, welcome_email_sender=email_sender)
|
|
|
|
|
|
def get_get_user_uc(
|
|
uow: SqlAlchemyUnitOfWork = Depends(get_uow),
|
|
) -> GetUserUseCase:
|
|
return GetUserUseCase(uow=uow)
|