You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.1 KiB

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()