30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
from dependency_injector import containers, providers
|
|
from controllers import UserController
|
|
from repositories.user_repository import UserRepository
|
|
from services import UserService, AuthService
|
|
from controllers import AuthController
|
|
from flask_pymongo import PyMongo
|
|
from repositories import QuizRepository
|
|
from services import QuizService
|
|
from controllers import QuizController
|
|
|
|
|
|
class Container(containers.DeclarativeContainer):
|
|
"""Dependency Injection Container"""
|
|
|
|
mongo = providers.Dependency()
|
|
|
|
# repository
|
|
user_repository = providers.Factory(UserRepository, mongo.provided.db)
|
|
quiz_repository = providers.Factory(QuizRepository, mongo.provided.db)
|
|
|
|
# services
|
|
auth_service = providers.Factory(AuthService, user_repository)
|
|
user_service = providers.Factory(UserService, user_repository)
|
|
quiz_service = providers.Factory(QuizService, quiz_repository)
|
|
|
|
# controllers
|
|
auth_controller = providers.Factory(AuthController, user_service, auth_service)
|
|
user_controller = providers.Factory(UserController, user_service)
|
|
quiz_controller = providers.Factory(QuizController, quiz_service)
|