service_man/api/app_builder/dependencies.py

27 lines
1.1 KiB
Python
Raw Normal View History

2024-03-31 04:18:41 +03:00
from fastapi import FastAPI
from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession, async_sessionmaker
from api.application.abstractions.uow import UnitOfWork
from api.application.usecase.create_user import CreateUser
from api.domain.user.repository import UserRepository
from api.infrastructure.dependencies.adapters import (
create_engine,
create_session_maker,
new_session,
new_unit_of_work,
)
2024-03-31 21:07:59 +03:00
from api.infrastructure.dependencies.configs import app_settings
2024-03-31 04:18:41 +03:00
from api.infrastructure.dependencies.repositories import get_user_repository
from api.infrastructure.dependencies.usecases import provide_create_user
2024-03-31 21:07:59 +03:00
from api.infrastructure.settings import Settings
2024-03-31 04:18:41 +03:00
def init_dependencies(app: FastAPI) -> None:
2024-03-31 21:07:59 +03:00
app.dependency_overrides[Settings] = app_settings
2024-03-31 04:18:41 +03:00
app.dependency_overrides[AsyncEngine] = create_engine
app.dependency_overrides[async_sessionmaker[AsyncSession]] = create_session_maker
app.dependency_overrides[AsyncSession] = new_session
app.dependency_overrides[UserRepository] = get_user_repository
app.dependency_overrides[UnitOfWork] = new_unit_of_work
app.dependency_overrides[CreateUser] = provide_create_user