2021-02-04 16:10:10 +03:00
|
|
|
"""Containers module."""
|
|
|
|
|
|
|
|
from dependency_injector import containers, providers
|
|
|
|
|
|
|
|
from .database import Database
|
|
|
|
from .repositories import UserRepository
|
|
|
|
from .services import UserService
|
|
|
|
|
|
|
|
|
|
|
|
class Container(containers.DeclarativeContainer):
|
|
|
|
|
|
|
|
config = providers.Configuration()
|
|
|
|
|
|
|
|
db = providers.Singleton(Database, db_url=config.db.url)
|
|
|
|
|
2021-02-05 01:14:40 +03:00
|
|
|
user_repository = providers.Factory(
|
2021-02-04 16:10:10 +03:00
|
|
|
UserRepository,
|
|
|
|
session_factory=db.provided.session,
|
|
|
|
)
|
|
|
|
|
|
|
|
user_service = providers.Factory(
|
|
|
|
UserService,
|
2021-02-05 01:14:40 +03:00
|
|
|
user_repository=user_repository,
|
2021-02-04 16:10:10 +03:00
|
|
|
)
|