From 6e77d3818e82279166006de349603c136b41016e Mon Sep 17 00:00:00 2001 From: host Date: Sun, 9 Aug 2026 14:31:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=B7=D0=B0=D1=89=D0=B8=D1=89=D1=91=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D1=81=D0=BF=D0=B8=D1=81=D0=BE=D0=BA=20=D0=B8=D0=BD?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BD=D1=81=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/routers/instances.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 backend/app/routers/instances.py diff --git a/backend/app/routers/instances.py b/backend/app/routers/instances.py new file mode 100644 index 0000000..8c44860 --- /dev/null +++ b/backend/app/routers/instances.py @@ -0,0 +1,24 @@ +from fastapi import APIRouter, Depends +from sqlalchemy import select +from sqlalchemy.orm import Session + +from .. import models, schemas +from ..database import get_db +from ..deps import get_current_user + +router = APIRouter(prefix="/instances", tags=["instances"]) + + +@router.get("", response_model=list[schemas.InstanceOut]) +def list_instances( + db: Session = Depends(get_db), + user: models.User = Depends(get_current_user), +): + """Клиент видит только свои инстансы, администратор — все.""" + query = select(models.Instance).where( + models.Instance.status != models.InstanceStatus.deleted + ) + if user.role != models.UserRole.admin: + query = query.where(models.Instance.owner_id == user.id) + query = query.order_by(models.Instance.created_at.desc()) + return list(db.scalars(query))