99from api .infrastructure .postgres import PostgresKeyRepository , PostgresProviderRepository , PostgresRouterRepository , PostgresUserInfoRepository
1010from api .schemas .core .context import RequestContext
1111from api .use_cases .admin .providers import CreateProviderUseCase , DeleteProviderUseCase
12- from api .use_cases .admin .routers import CreateRouterUseCase , DeleteRouterUseCase , GetOneRouterUseCase , GetRoutersUseCase
12+ from api .use_cases .admin .routers import CreateRouterUseCase , DeleteRouterUseCase , GetOneRouterUseCase , GetRoutersUseCase , UpdateRouterUseCase
1313from api .use_cases .models import GetModelsUseCase
1414from api .utils .configuration import configuration
1515from api .utils .context import global_context , request_context
1616
1717
18+ def get_request_context () -> ContextVar [RequestContext ]:
19+ return request_context
20+
21+
22+ def get_master_key () -> str :
23+ return configuration .settings .auth_master_key
24+
25+
26+ # databases
1827async def get_postgres_session () -> AsyncGenerator [AsyncSession ]:
1928 session_factory = global_context .postgres_session_factory
2029 async with session_factory () as postgres_session :
@@ -28,10 +37,7 @@ async def get_postgres_session() -> AsyncGenerator[AsyncSession]:
2837 raise
2938
3039
31- def get_request_context () -> ContextVar [RequestContext ]:
32- return request_context
33-
34-
40+ # repositories
3541def _router_repository (session : AsyncSession ) -> PostgresRouterRepository :
3642 return PostgresRouterRepository (postgres_session = session , app_title = configuration .settings .app_title )
3743
@@ -40,6 +46,11 @@ def _user_info_repository(session: AsyncSession) -> PostgresUserInfoRepository:
4046 return PostgresUserInfoRepository (postgres_session = session )
4147
4248
49+ def get_key_repository (postgres_session : AsyncSession = Depends (get_postgres_session )) -> KeyRepository :
50+ return PostgresKeyRepository (postgres_session = postgres_session )
51+
52+
53+ # models use cases
4354def get_models_use_case (
4455 postgres_session : AsyncSession = Depends (get_postgres_session ),
4556 request_context : RequestContext = Depends (get_request_context ),
@@ -51,45 +62,33 @@ def get_models_use_case(
5162 )
5263
5364
54- def create_provider_use_case_factory (
55- postgres_session : AsyncSession = Depends (get_postgres_session ),
56- ) -> CreateProviderUseCase :
57- return CreateProviderUseCase (
58- router_repository = _router_repository (postgres_session ),
59- provider_repository = PostgresProviderRepository (postgres_session = postgres_session ),
60- provider_gateway = ModelProviderGateway (),
61- user_info_repository = _user_info_repository (postgres_session ),
62- )
65+ # routers use cases
66+ def get_one_router_use_case_factory (postgres_session : AsyncSession = Depends (get_postgres_session )) -> GetOneRouterUseCase :
67+ return GetOneRouterUseCase (router_repository = _router_repository (postgres_session ), user_info_repository = _user_info_repository (postgres_session ))
6368
6469
65- def get_one_router_use_case_factory (
66- postgres_session : AsyncSession = Depends (get_postgres_session ),
67- ) -> GetOneRouterUseCase :
68- return GetOneRouterUseCase (
69- router_repository = _router_repository (postgres_session ),
70- user_info_repository = _user_info_repository (postgres_session ),
71- )
72-
73-
74- def get_routers_use_case_factory (
75- postgres_session : AsyncSession = Depends (get_postgres_session ),
76- ) -> GetRoutersUseCase :
77- return GetRoutersUseCase (
78- router_repository = _router_repository (postgres_session ),
79- user_info_repository = _user_info_repository (postgres_session ),
80- )
70+ def get_routers_use_case_factory (postgres_session : AsyncSession = Depends (get_postgres_session )) -> GetRoutersUseCase :
71+ return GetRoutersUseCase (router_repository = _router_repository (postgres_session ), user_info_repository = _user_info_repository (postgres_session ))
8172
8273
8374def create_router_use_case_factory (postgres_session : AsyncSession = Depends (get_postgres_session )) -> CreateRouterUseCase :
84- return CreateRouterUseCase (
85- router_repository = _router_repository (postgres_session ),
86- user_info_repository = _user_info_repository (postgres_session ),
87- )
75+ return CreateRouterUseCase (router_repository = _router_repository (postgres_session ), user_info_repository = _user_info_repository (postgres_session ))
8876
8977
9078def delete_router_use_case_factory (postgres_session : AsyncSession = Depends (get_postgres_session )) -> DeleteRouterUseCase :
91- return DeleteRouterUseCase (
79+ return DeleteRouterUseCase (router_repository = _router_repository (postgres_session ), user_info_repository = _user_info_repository (postgres_session ))
80+
81+
82+ def update_router_use_case_factory (postgres_session : AsyncSession = Depends (get_postgres_session )) -> UpdateRouterUseCase :
83+ return UpdateRouterUseCase (router_repository = _router_repository (postgres_session ), user_info_repository = _user_info_repository (postgres_session ))
84+
85+
86+ # providers use cases
87+ def create_provider_use_case_factory (postgres_session : AsyncSession = Depends (get_postgres_session )) -> CreateProviderUseCase :
88+ return CreateProviderUseCase (
9289 router_repository = _router_repository (postgres_session ),
90+ provider_repository = PostgresProviderRepository (postgres_session = postgres_session ),
91+ provider_gateway = ModelProviderGateway (),
9392 user_info_repository = _user_info_repository (postgres_session ),
9493 )
9594
@@ -99,11 +98,3 @@ def delete_provider_use_case_factory(postgres_session: AsyncSession = Depends(ge
9998 provider_repository = PostgresProviderRepository (postgres_session = postgres_session ),
10099 user_info_repository = _user_info_repository (postgres_session ),
101100 )
102-
103-
104- def get_key_repository (postgres_session : AsyncSession = Depends (get_postgres_session )) -> KeyRepository :
105- return PostgresKeyRepository (postgres_session = postgres_session )
106-
107-
108- def get_master_key () -> str :
109- return configuration .settings .auth_master_key
0 commit comments