from fastapi import APIRouter, Depends from pydantic import BaseModel from conf import setting from helper import respond_to from models import Hikvision router = APIRouter(prefix='/hikvisions') class HikvisionCreateModel(BaseModel): cabinet_id: str name: str ip: str channel: str @router.get('', summary='视频监控配置列表') async def index(): hikvisions = await Hikvision.filter(terminal_id=setting.TERMINAL_ID).values('id', 'name', 'ip', 'channel') return respond_to(data=hikvisions) @router.get('/{cabinet_id}', summary='单查视频监控配置') async def index(cabinet_id: str): hikvision = await Hikvision.get_or_none(terminal_id=setting.TERMINAL_ID, cabinet_id=cabinet_id).values('id', 'name', 'ip', 'channel') return respond_to(data=hikvision) @router.post('', summary='创建视频监控配置') async def create(model: HikvisionCreateModel): await Hikvision.create(**(model.dict() | {'terminal_id': setting.TERMINAL_ID})) return respond_to() @router.delete('/{id}', summary='删除视频监控配置') async def destroy(id: str): await Hikvision.filter(id=id).delete() return respond_to()