Files
onion-arch/app/presentation/dependencies/users.py
2026-01-30 16:34:56 +03:00

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)