[feat] remove example user
This commit is contained in:
parent
776b513858
commit
539f019f39
6 changed files with 4 additions and 62 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -23,11 +23,5 @@ class SandboxSessionResponse(BaseModel):
|
|||
expires_at: datetime
|
||||
|
||||
|
||||
class UserResponse(BaseModel):
|
||||
id: str
|
||||
email: str
|
||||
name: str
|
||||
|
||||
|
||||
class ErrorResponse(BaseModel):
|
||||
detail: str
|
||||
|
|
|
|||
2
tasks.md
2
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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue