|
7 | 7 | from redis.asyncio import Redis |
8 | 8 | from sqlalchemy.ext.asyncio import AsyncSession |
9 | 9 |
|
10 | | -from api.domain.auth import AuthSsoSessionValidator |
| 10 | +from api.domain.auth import AuthSsoSessionValidator, SsoPolicyRepository |
11 | 11 | from api.domain.key import KeyEncoder, KeyRepository |
12 | 12 | from api.domain.model import ModelEnvironmentalImpactsComputer, ModelTokenizer |
13 | 13 | from api.domain.organization import OrganizationRepository |
|
37 | 37 | PostgresProviderRepository, |
38 | 38 | PostgresRolesRepository, |
39 | 39 | PostgresRouterRepository, |
| 40 | + PostgresSsoPolicyRepository, |
40 | 41 | PostgresUserRepository, |
41 | 42 | ) |
42 | 43 | from api.infrastructure.redis import RedisProviderLoadBalancer, RedisProviderMetricsLogger, RedisRouterRateLimiter |
|
52 | 53 | ) |
53 | 54 | from api.use_cases.admin.roles import CreateRoleUseCase, DeleteRoleUseCase, GetRolesUseCase, GetRoleUseCase, UpdateRoleUseCase |
54 | 55 | from api.use_cases.admin.routers import CreateRouterUseCase, DeleteRouterUseCase, GetOneRouterUseCase, GetRoutersUseCase, UpdateRouterUseCase |
| 56 | +from api.use_cases.admin.sso import GetSsoPolicyUseCase, UpdateSsoPolicyUseCase |
55 | 57 | from api.use_cases.admin.users import CreateUserUseCase, DeleteUserUseCase, GetOneUserUseCase, GetUsersUseCase |
56 | 58 | from api.use_cases.auth import AuthLoginUseCase, AuthSsoLoginUseCase |
57 | 59 | from api.use_cases.health import GetHealthModelsUseCase |
@@ -163,6 +165,10 @@ def _router_repository(session: AsyncSession) -> PostgresRouterRepository: |
163 | 165 | return PostgresRouterRepository(postgres_session=session, app_title=configuration.settings.app_title) |
164 | 166 |
|
165 | 167 |
|
| 168 | +def _sso_policy_repository(session: AsyncSession) -> SsoPolicyRepository: |
| 169 | + return PostgresSsoPolicyRepository(postgres_session=session) |
| 170 | + |
| 171 | + |
166 | 172 | def _limit_repository(session: AsyncSession) -> LimitRepository: |
167 | 173 | return PostgresLimitRepository(postgres_session=session) |
168 | 174 |
|
@@ -195,11 +201,10 @@ def auth_sso_login_use_case_factory( |
195 | 201 | ) -> AuthSsoLoginUseCase: |
196 | 202 | return AuthSsoLoginUseCase( |
197 | 203 | key_repository=_key_repository(key_encoder=key_encoder, session=postgres_session), |
198 | | - organization_repository=_organization_repository(session=postgres_session), |
199 | 204 | user_repository=_user_repository(session=postgres_session), |
| 205 | + sso_policy_repository=_sso_policy_repository(session=postgres_session), |
200 | 206 | auth_sso_session_validator=_auth_sso_session_validator(), |
201 | 207 | auth_login_type=configuration.settings.auth_login_type, |
202 | | - auth_sso_default_role_id=configuration.settings.auth_sso_default_role_id, |
203 | 208 | auth_login_session_duration=configuration.settings.auth_login_session_duration, |
204 | 209 | ) |
205 | 210 |
|
@@ -234,23 +239,39 @@ def get_model_use_case_factory(postgres_session: AsyncSession = Depends(get_post |
234 | 239 | return GetModelUseCase(router_repository=_router_repository(postgres_session)) |
235 | 240 |
|
236 | 241 |
|
237 | | -# user use cases |
238 | | -def create_user_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> CreateUserUseCase: |
239 | | - return CreateUserUseCase(user_repository=_user_repository(postgres_session), user_password_encoder=_user_password_encoder()) |
| 242 | +# provider use cases |
| 243 | +def create_provider_use_case_factory( |
| 244 | + postgres_session: AsyncSession = Depends(get_postgres_session), |
| 245 | + provider_client: ProviderClient = Depends(_provider_client), |
| 246 | +) -> CreateProviderUseCase: |
| 247 | + return CreateProviderUseCase( |
| 248 | + router_repository=_router_repository(postgres_session), |
| 249 | + provider_repository=_provider_repository(postgres_session), |
| 250 | + provider_gateway=_provider_gateway(provider_client=provider_client, provider_adapter_builder=HttpProviderAdapterBuilder()), |
| 251 | + ) |
240 | 252 |
|
241 | 253 |
|
242 | | -def get_one_user_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> GetOneUserUseCase: |
243 | | - return GetOneUserUseCase(user_repository=_user_repository(postgres_session)) |
| 254 | +def update_provider_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> UpdateProviderUseCase: |
| 255 | + return UpdateProviderUseCase( |
| 256 | + router_repository=_router_repository(postgres_session), |
| 257 | + provider_repository=_provider_repository(postgres_session), |
| 258 | + ) |
244 | 259 |
|
245 | 260 |
|
246 | | -def get_users_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> GetUsersUseCase: |
247 | | - return GetUsersUseCase(user_repository=_user_repository(postgres_session)) |
| 261 | +def delete_provider_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> DeleteProviderUseCase: |
| 262 | + return DeleteProviderUseCase( |
| 263 | + provider_repository=_provider_repository(postgres_session), |
| 264 | + ) |
248 | 265 |
|
249 | 266 |
|
250 | | -def delete_user_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> DeleteUserUseCase: |
251 | | - return DeleteUserUseCase( |
252 | | - user_repository=_user_repository(postgres_session), |
253 | | - router_repository=_router_repository(postgres_session), |
| 267 | +def get_one_provider_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> GetOneProviderUseCase: |
| 268 | + return GetOneProviderUseCase( |
| 269 | + provider_repository=_provider_repository(postgres_session), |
| 270 | + ) |
| 271 | + |
| 272 | + |
| 273 | +def get_providers_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> GetProvidersUseCase: |
| 274 | + return GetProvidersUseCase( |
254 | 275 | provider_repository=_provider_repository(postgres_session), |
255 | 276 | ) |
256 | 277 |
|
@@ -345,38 +366,33 @@ def update_router_use_case_factory(postgres_session: AsyncSession = Depends(get_ |
345 | 366 | ) |
346 | 367 |
|
347 | 368 |
|
348 | | -# provider use cases |
349 | | -def create_provider_use_case_factory( |
350 | | - postgres_session: AsyncSession = Depends(get_postgres_session), |
351 | | - provider_client: ProviderClient = Depends(_provider_client), |
352 | | -) -> CreateProviderUseCase: |
353 | | - return CreateProviderUseCase( |
354 | | - router_repository=_router_repository(postgres_session), |
355 | | - provider_repository=_provider_repository(postgres_session), |
356 | | - provider_gateway=_provider_gateway(provider_client=provider_client, provider_adapter_builder=HttpProviderAdapterBuilder()), |
| 369 | +# sso policy use cases |
| 370 | +def get_sso_policy_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> GetSsoPolicyUseCase: |
| 371 | + return GetSsoPolicyUseCase( |
| 372 | + sso_policy_repository=_sso_policy_repository(session=postgres_session), |
357 | 373 | ) |
358 | 374 |
|
359 | 375 |
|
360 | | -def update_provider_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> UpdateProviderUseCase: |
361 | | - return UpdateProviderUseCase( |
362 | | - router_repository=_router_repository(postgres_session), |
363 | | - provider_repository=_provider_repository(postgres_session), |
364 | | - ) |
| 376 | +def update_sso_policy_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> UpdateSsoPolicyUseCase: |
| 377 | + return UpdateSsoPolicyUseCase(sso_policy_repository=_sso_policy_repository(session=postgres_session)) |
365 | 378 |
|
366 | 379 |
|
367 | | -def delete_provider_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> DeleteProviderUseCase: |
368 | | - return DeleteProviderUseCase( |
369 | | - provider_repository=_provider_repository(postgres_session), |
370 | | - ) |
| 380 | +# user use cases |
| 381 | +def create_user_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> CreateUserUseCase: |
| 382 | + return CreateUserUseCase(user_repository=_user_repository(postgres_session), user_password_encoder=_user_password_encoder()) |
371 | 383 |
|
372 | 384 |
|
373 | | -def get_one_provider_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> GetOneProviderUseCase: |
374 | | - return GetOneProviderUseCase( |
375 | | - provider_repository=_provider_repository(postgres_session), |
376 | | - ) |
| 385 | +def get_one_user_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> GetOneUserUseCase: |
| 386 | + return GetOneUserUseCase(user_repository=_user_repository(postgres_session)) |
377 | 387 |
|
378 | 388 |
|
379 | | -def get_providers_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> GetProvidersUseCase: |
380 | | - return GetProvidersUseCase( |
| 389 | +def get_users_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> GetUsersUseCase: |
| 390 | + return GetUsersUseCase(user_repository=_user_repository(postgres_session)) |
| 391 | + |
| 392 | + |
| 393 | +def delete_user_use_case_factory(postgres_session: AsyncSession = Depends(get_postgres_session)) -> DeleteUserUseCase: |
| 394 | + return DeleteUserUseCase( |
| 395 | + user_repository=_user_repository(postgres_session), |
| 396 | + router_repository=_router_repository(postgres_session), |
381 | 397 | provider_repository=_provider_repository(postgres_session), |
382 | 398 | ) |
0 commit comments