[feat] remove example user

This commit is contained in:
Azamat 2026-04-02 21:26:23 +03:00
parent 776b513858
commit 539f019f39
6 changed files with 4 additions and 62 deletions

View file

@ -11,24 +11,19 @@ from adapter.config.model import AppConfig
from adapter.docker.runtime import DockerSandboxRuntime from adapter.docker.runtime import DockerSandboxRuntime
from adapter.observability.factory import build_observability from adapter.observability.factory import build_observability
from adapter.observability.runtime import ObservabilityRuntime from adapter.observability.runtime import ObservabilityRuntime
from domain.user import User
from repository.sandbox_lock import ProcessLocalSandboxLifecycleLocker from repository.sandbox_lock import ProcessLocalSandboxLifecycleLocker
from repository.sandbox_session import InMemorySandboxSessionRepository from repository.sandbox_session import InMemorySandboxSessionRepository
from repository.user import InMemoryUserRepository
from usecase.interface import Clock from usecase.interface import Clock
from usecase.sandbox import CleanupExpiredSandboxes, CreateSandbox from usecase.sandbox import CleanupExpiredSandboxes, CreateSandbox
from usecase.user import GetUser
@dataclass(frozen=True, slots=True) @dataclass(frozen=True, slots=True)
class AppRepositories: class AppRepositories:
user: InMemoryUserRepository
sandbox_session: InMemorySandboxSessionRepository sandbox_session: InMemorySandboxSessionRepository
@dataclass(frozen=True, slots=True) @dataclass(frozen=True, slots=True)
class AppUsecases: class AppUsecases:
get_user: GetUser
create_sandbox: CreateSandbox create_sandbox: CreateSandbox
cleanup_expired_sandboxes: CleanupExpiredSandboxes cleanup_expired_sandboxes: CleanupExpiredSandboxes
@ -82,23 +77,12 @@ def build_container(
clock = SystemClock() clock = SystemClock()
docker_client = docker.DockerClient(base_url=app_config.docker.base_url) 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_repository = InMemorySandboxSessionRepository()
sandbox_locker = ProcessLocalSandboxLifecycleLocker() sandbox_locker = ProcessLocalSandboxLifecycleLocker()
sandbox_runtime = DockerSandboxRuntime(app_config.sandbox, docker_client) sandbox_runtime = DockerSandboxRuntime(app_config.sandbox, docker_client)
repositories = AppRepositories( repositories = AppRepositories(sandbox_session=sandbox_repository)
user=user_repository,
sandbox_session=sandbox_repository,
)
usecases = AppUsecases( usecases = AppUsecases(
get_user=GetUser(
repository=user_repository,
logger=observability.logger,
tracer=observability.tracer,
),
create_sandbox=CreateSandbox( create_sandbox=CreateSandbox(
repository=sandbox_repository, repository=sandbox_repository,
locker=sandbox_locker, locker=sandbox_locker,

View file

@ -2,7 +2,6 @@ from fastapi import Depends, Request
from adapter.di.container import AppContainer from adapter.di.container import AppContainer
from usecase.sandbox import CreateSandbox from usecase.sandbox import CreateSandbox
from usecase.user import GetUser
APP_CONTAINER_STATE = 'container' APP_CONTAINER_STATE = 'container'
APP_CONFIG_STATE = 'config' APP_CONFIG_STATE = 'config'
@ -15,10 +14,6 @@ def get_container(request: Request) -> AppContainer:
return container return container
def get_get_user(container: AppContainer = Depends(get_container)) -> GetUser:
return container.usecases.get_user
def get_create_sandbox( def get_create_sandbox(
container: AppContainer = Depends(get_container), container: AppContainer = Depends(get_container),
) -> CreateSandbox: ) -> CreateSandbox:

View file

@ -4,19 +4,16 @@ from adapter.di.container import AppContainer
from adapter.http.fastapi.dependencies import ( from adapter.http.fastapi.dependencies import (
get_container, get_container,
get_create_sandbox, get_create_sandbox,
get_get_user,
) )
from adapter.http.fastapi.schemas import ( from adapter.http.fastapi.schemas import (
CreateSandboxRequest, CreateSandboxRequest,
ErrorResponse, ErrorResponse,
HealthResponse, HealthResponse,
SandboxSessionResponse, SandboxSessionResponse,
UserResponse,
) )
from domain.error import SandboxError, SandboxStartError, UserNotFoundError from domain.error import SandboxError, SandboxStartError
from domain.sandbox import SandboxSession from domain.sandbox import SandboxSession
from usecase.sandbox import CreateSandbox, CreateSandboxCommand from usecase.sandbox import CreateSandbox, CreateSandboxCommand
from usecase.user import GetUser, GetUserQuery
router = APIRouter() 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( @router.post(
'/create', '/create',
response_model=SandboxSessionResponse, response_model=SandboxSessionResponse,

View file

@ -23,11 +23,5 @@ class SandboxSessionResponse(BaseModel):
expires_at: datetime expires_at: datetime
class UserResponse(BaseModel):
id: str
email: str
name: str
class ErrorResponse(BaseModel): class ErrorResponse(BaseModel):
detail: str detail: str

View file

@ -142,7 +142,7 @@
### M11. Удаление не-MVP user surface из приложения ### M11. Удаление не-MVP user surface из приложения
- Субагент: `feature-developer` - Субагент: `feature-developer`
- Статус: pending - Статус: completed
- Зависимости: `M08` - Зависимости: `M08`
- Commit required: no - Commit required: no
- Scope: убрать из runtime app неотносящиеся к MVP user endpoint и seed user wiring - Scope: убрать из runtime app неотносящиеся к MVP user endpoint и seed user wiring

View file

@ -25,10 +25,8 @@ from adapter.observability.runtime import ObservabilityRuntime
from domain.error import SandboxError, SandboxStartError from domain.error import SandboxError, SandboxStartError
from domain.sandbox import SandboxSession, SandboxStatus from domain.sandbox import SandboxSession, SandboxStatus
from repository.sandbox_session import InMemorySandboxSessionRepository from repository.sandbox_session import InMemorySandboxSessionRepository
from repository.user import InMemoryUserRepository
from usecase.interface import Attrs from usecase.interface import Attrs
from usecase.sandbox import CleanupExpiredSandboxes, CreateSandbox, CreateSandboxCommand from usecase.sandbox import CleanupExpiredSandboxes, CreateSandbox, CreateSandboxCommand
from usecase.user import GetUser
class FakeLogger: class FakeLogger:
@ -130,16 +128,8 @@ def build_container(
metrics=NoopMetrics(), metrics=NoopMetrics(),
tracer=NoopTracer(), tracer=NoopTracer(),
) )
repositories = AppRepositories( repositories = AppRepositories(sandbox_session=InMemorySandboxSessionRepository())
user=InMemoryUserRepository(NoopTracer()),
sandbox_session=InMemorySandboxSessionRepository(),
)
usecases = AppUsecases( usecases = AppUsecases(
get_user=GetUser(
repository=repositories.user,
logger=logger,
tracer=NoopTracer(),
),
create_sandbox=create_sandbox_usecase, create_sandbox=create_sandbox_usecase,
cleanup_expired_sandboxes=cleanup_usecase, cleanup_expired_sandboxes=cleanup_usecase,
) )