|
6 | 6 | from api.dependencies import oauth2_scheme # noqa |
7 | 7 | from api.routers import bidding, catalog, diagnostics, iam |
8 | 8 | from config.api_config import ApiConfig |
9 | | -from config.container import TopLevelContainer |
| 9 | +from config.container import create_application, ApplicationContainer |
10 | 10 | from seedwork.domain.exceptions import DomainException, EntityNotFoundException |
11 | 11 | from seedwork.infrastructure.database import Base |
12 | 12 | from seedwork.infrastructure.logging import LoggerFactory, logger |
|
15 | 15 | LoggerFactory.configure(logger_name="api") |
16 | 16 |
|
17 | 17 | # dependency injection container |
18 | | -container = TopLevelContainer() |
19 | | -container.config.from_pydantic(ApiConfig()) |
| 18 | +config = ApiConfig() |
| 19 | +container = ApplicationContainer(config=config) |
| 20 | +db_engine = container.db_engine() |
| 21 | +logger.info(f"using db engine {db_engine}, creating tables") |
| 22 | +Base.metadata.create_all(db_engine) |
| 23 | +logger.info("setup complete") |
20 | 24 |
|
21 | | -app = FastAPI(debug=container.config.DEBUG) |
| 25 | +app = FastAPI(debug=config.DEBUG) |
22 | 26 |
|
23 | 27 | app.include_router(catalog.router) |
24 | 28 | app.include_router(bidding.router) |
25 | 29 | app.include_router(iam.router) |
26 | 30 | app.include_router(diagnostics.router) |
27 | 31 | app.container = container |
28 | 32 |
|
29 | | -db_engine = container.db_engine() |
30 | | -logger.info(f"using db engine {db_engine}, creating tables") |
31 | | -Base.metadata.create_all(db_engine) |
32 | | -logger.info("setup complete") |
| 33 | + |
33 | 34 |
|
34 | 35 | try: |
35 | 36 | import uuid |
36 | 37 |
|
37 | 38 | from modules.iam.application.services import IamService |
38 | 39 |
|
39 | 40 | with app.container.application().transaction_context() as ctx: |
40 | | - iam_service = ctx.get_service(IamService) |
| 41 | + iam_service = ctx[IamService] |
41 | 42 | iam_service.create_user( |
42 | 43 | user_id=uuid.UUID(int=1), |
43 | 44 | |
|
0 commit comments