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.
35 lines
895 B
35 lines
895 B
from fastapi import APIRouter
|
|
from starlette.requests import Request
|
|
from tortoise.queryset import QuerySet, Prefetch
|
|
from models.agv import Agv
|
|
from helper import respond_to
|
|
from tortoise.contrib.pydantic import pydantic_model_creator
|
|
|
|
from typing import List
|
|
|
|
agv_router = APIRouter(prefix='/agv')
|
|
|
|
@agv_router.get("/")
|
|
async def read_root():
|
|
return {"Hello": "World"}
|
|
|
|
|
|
@agv_router.get('/list', summary="列出所有AGV小车的状态")
|
|
async def index(request: Request, page_no: int = 1, page_size: int = 20):
|
|
"""
|
|
列出所有AGV小车的状态
|
|
:param page_no: 1
|
|
:param page_size: 20
|
|
:return:
|
|
"""
|
|
offset = (page_no - 1) * page_size
|
|
|
|
query = QuerySet(Agv).filter(is_valid=True, is_active=True)
|
|
|
|
count = await query.count()
|
|
agvs = await query.limit(page_size).offset(offset)
|
|
|
|
return respond_to(code=200, data=dict(count=count, data=agvs))
|
|
|
|
|