diff --git a/adapter/di/container.py b/adapter/di/container.py index 55f95a0..c5c7f35 100644 --- a/adapter/di/container.py +++ b/adapter/di/container.py @@ -11,24 +11,19 @@ from adapter.config.model import AppConfig from adapter.docker.runtime import DockerSandboxRuntime from adapter.observability.factory import build_observability from adapter.observability.runtime import ObservabilityRuntime -from domain.user import User from repository.sandbox_lock import ProcessLocalSandboxLifecycleLocker from repository.sandbox_session import InMemorySandboxSessionRepository -from repository.user import InMemoryUserRepository from usecase.interface import Clock from usecase.sandbox import CleanupExpiredSandboxes, CreateSandbox -from usecase.user import GetUser @dataclass(frozen=True, slots=True) class AppRepositories: - user: InMemoryUserRepository sandbox_session: InMemorySandboxSessionRepository @dataclass(frozen=True, slots=True) class AppUsecases: - get_user: GetUser create_sandbox: CreateSandbox cleanup_expired_sandboxes: CleanupExpiredSandboxes @@ -82,23 +77,12 @@ def build_container( clock = SystemClock() docker_client = docker.DockerClient(base_url=app_config.docker.base_url) - user_repository = InMemoryUserRepository( - observability.tracer, [User(id='123', email='aza@gglamer.ru', name='gglamer')] - ) sandbox_repository = InMemorySandboxSessionRepository() sandbox_locker = ProcessLocalSandboxLifecycleLocker() sandbox_runtime = DockerSandboxRuntime(app_config.sandbox, docker_client) - repositories = AppRepositories( - user=user_repository, - sandbox_session=sandbox_repository, - ) + repositories = AppRepositories(sandbox_session=sandbox_repository) usecases = AppUsecases( - get_user=GetUser( - repository=user_repository, - logger=observability.logger, - tracer=observability.tracer, - ), create_sandbox=CreateSandbox( repository=sandbox_repository, locker=sandbox_locker, diff --git a/adapter/http/fastapi/dependencies.py b/adapter/http/fastapi/dependencies.py index 87a9224..57af579 100644 --- a/adapter/http/fastapi/dependencies.py +++ b/adapter/http/fastapi/dependencies.py @@ -2,7 +2,6 @@ from fastapi import Depends, Request from adapter.di.container import AppContainer from usecase.sandbox import CreateSandbox -from usecase.user import GetUser APP_CONTAINER_STATE = 'container' APP_CONFIG_STATE = 'config' @@ -15,10 +14,6 @@ def get_container(request: Request) -> AppContainer: return container -def get_get_user(container: AppContainer = Depends(get_container)) -> GetUser: - return container.usecases.get_user - - def get_create_sandbox( container: AppContainer = Depends(get_container), ) -> CreateSandbox: diff --git a/adapter/http/fastapi/routers/v1/router.py b/adapter/http/fastapi/routers/v1/router.py index 1f0aff4..df713b1 100644 --- a/adapter/http/fastapi/routers/v1/router.py +++ b/adapter/http/fastapi/routers/v1/router.py @@ -4,19 +4,16 @@ from adapter.di.container import AppContainer from adapter.http.fastapi.dependencies import ( get_container, get_create_sandbox, - get_get_user, ) from adapter.http.fastapi.schemas import ( CreateSandboxRequest, ErrorResponse, HealthResponse, SandboxSessionResponse, - UserResponse, ) -from domain.error import SandboxError, SandboxStartError, UserNotFoundError +from domain.error import SandboxError, SandboxStartError from domain.sandbox import SandboxSession from usecase.sandbox import CreateSandbox, CreateSandboxCommand -from usecase.user import GetUser, GetUserQuery router = APIRouter() @@ -34,24 +31,6 @@ def health(container: AppContainer = Depends(get_container)) -> HealthResponse: ) -@router.get( - '/users/{user_id}', - response_model=UserResponse, - responses={status.HTTP_404_NOT_FOUND: {'model': ErrorResponse}}, - status_code=status.HTTP_200_OK, -) -def get_user(user_id: str, usecase: GetUser = Depends(get_get_user)) -> UserResponse: - try: - user = usecase.execute(GetUserQuery(user_id=user_id)) - except UserNotFoundError as exc: - raise HTTPException( - status_code=status.HTTP_404_NOT_FOUND, - detail=str(exc), - ) from exc - - return UserResponse(id=user.id, email=user.email, name=user.name) - - @router.post( '/create', response_model=SandboxSessionResponse, diff --git a/adapter/http/fastapi/schemas.py b/adapter/http/fastapi/schemas.py index 08d9056..9ca2e5f 100644 --- a/adapter/http/fastapi/schemas.py +++ b/adapter/http/fastapi/schemas.py @@ -23,11 +23,5 @@ class SandboxSessionResponse(BaseModel): expires_at: datetime -class UserResponse(BaseModel): - id: str - email: str - name: str - - class ErrorResponse(BaseModel): detail: str diff --git a/tasks.md b/tasks.md index b2de0dd..ef33fc6 100644 --- a/tasks.md +++ b/tasks.md @@ -142,7 +142,7 @@ ### M11. Удаление не-MVP user surface из приложения - Субагент: `feature-developer` -- Статус: pending +- Статус: completed - Зависимости: `M08` - Commit required: no - Scope: убрать из runtime app неотносящиеся к MVP user endpoint и seed user wiring diff --git a/test/test_create_http.py b/test/test_create_http.py index bf910e0..0176f6c 100644 --- a/test/test_create_http.py +++ b/test/test_create_http.py @@ -25,10 +25,8 @@ from adapter.observability.runtime import ObservabilityRuntime from domain.error import SandboxError, SandboxStartError from domain.sandbox import SandboxSession, SandboxStatus from repository.sandbox_session import InMemorySandboxSessionRepository -from repository.user import InMemoryUserRepository from usecase.interface import Attrs from usecase.sandbox import CleanupExpiredSandboxes, CreateSandbox, CreateSandboxCommand -from usecase.user import GetUser class FakeLogger: @@ -130,16 +128,8 @@ def build_container( metrics=NoopMetrics(), tracer=NoopTracer(), ) - repositories = AppRepositories( - user=InMemoryUserRepository(NoopTracer()), - sandbox_session=InMemorySandboxSessionRepository(), - ) + repositories = AppRepositories(sandbox_session=InMemorySandboxSessionRepository()) usecases = AppUsecases( - get_user=GetUser( - repository=repositories.user, - logger=logger, - tracer=NoopTracer(), - ), create_sandbox=create_sandbox_usecase, cleanup_expired_sandboxes=cleanup_usecase, )