| 22 | |
| 23 | |
| 24 | class Container(containers.DeclarativeContainer): |
| 25 | config = providers.Configuration() |
| 26 | app_config = providers.Singleton(Settings) |
| 27 | db_config = providers.Singleton(MyDatabaseConfig, dsn=app_config.provided.sqlalchemy_database_uri) |
| 28 | |
| 29 | log = providers.Singleton( |
| 30 | Log, |
| 31 | app_name=app_config().app_name, |
| 32 | env=app_config().environment, |
| 33 | service_name=app_config().service_name, |
| 34 | loki_url=app_config().loki_url, |
| 35 | loki_enabled=app_config().loki_enabled, |
| 36 | ) |
| 37 | |
| 38 | log_request = providers.Singleton( |
| 39 | Log, |
| 40 | app_name=app_config().app_name, |
| 41 | env=app_config().environment, |
| 42 | service_name="request", |
| 43 | loki_url=app_config().loki_url, |
| 44 | loki_enabled=app_config().loki_enabled, |
| 45 | ) |
| 46 | |
| 47 | log_rm = providers.Singleton( |
| 48 | Log, |
| 49 | app_name=app_config().app_name, |
| 50 | env=app_config().environment, |
| 51 | service_name="rabbitmq", |
| 52 | loki_url=app_config().loki_url, |
| 53 | loki_enabled=app_config().loki_enabled, |
| 54 | ) |
| 55 | |
| 56 | email_service = providers.Singleton( |
| 57 | EmailService, |
| 58 | smtp_server=app_config.provided.smtp_server, |
| 59 | smtp_port=app_config.provided.smtp_port, |
| 60 | app_password=app_config.provided.app_password, |
| 61 | from_email=app_config.provided.from_email, |
| 62 | ) |
| 63 | |
| 64 | rmq_config = providers.Singleton( |
| 65 | RabbitMQConfig, |
| 66 | url=app_config.provided.rabbitmq_url, |
| 67 | ) |
| 68 | |
| 69 | rmq_producer = providers.Singleton(AsyncRabbitMQProducer, config=rmq_config, log=log_rm) |
| 70 | rmq_consumer = providers.Singleton(AsyncRabbitMQConsumer, config=rmq_config, log=log_rm) |
| 71 | rmq_service = providers.Singleton( |
| 72 | RMQService, |
| 73 | producer=rmq_producer, |
| 74 | ) |
| 75 | |
| 76 | view_service = providers.Singleton( |
| 77 | ViewService, |
| 78 | template_dirs="src/core/service/email/templates", |
| 79 | app_url=app_config.provided.app_url, |
| 80 | ) |
| 81 |
no outgoing calls
no test coverage detected