/
tsps
/
core
Обзор
Документация
Войти
/
tsps
/
core
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
app/api/admin/admins.py
49 строк
1 KB
Василий Петров
Апи админов и фильтрация по ним в задачах
19 фев 2026, 22:41
19 фев 2026, 22:41
413be3d
Код
Авторство
О чём код?
from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy.orm import Session from typing import Optional from app.database import get_db from app.models.admin import Admin from app.schemas.admin import AdminRead from app.schemas.common import PaginationOut from app.core.security import get_current_admin_id import logging logger = logging.getLogger(__name__) router = APIRouter( prefix="/admins", tags=["admin: admins"], dependencies=[Depends(get_current_admin_id)] ) @router.get("", response_model=PaginationOut[AdminRead]) def read_admins( skip: int = 0, limit: int = 100, email: Optional[str] = None, db: Session = Depends(get_db) ): query = db.query(Admin) if email: query = query.filter(Admin.email.ilike(f"%{email}%")) total = query.count() admins = query.order_by(Admin.id).offset(skip).limit(limit).all() return { "items": admins, "total": total, "skip": skip, "limit": limit } @router.get("/{admin_id}", response_model=AdminRead) def read_admin(admin_id: int, db: Session = Depends(get_db)): admin = db.get(Admin, admin_id) if not admin: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, detail="Админ не найден" ) return admin