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.
33 lines
794 B
33 lines
794 B
from fastapi import APIRouter
|
|
from starlette.requests import Request
|
|
from tortoise.queryset import QuerySet
|
|
from models.task import Task
|
|
from helper import respond_to
|
|
|
|
task_router = APIRouter(prefix='/task')
|
|
|
|
|
|
|
|
@task_router.get("/")
|
|
def read_root():
|
|
return {"Hello": "World"}
|
|
|
|
|
|
|
|
@task_router.get('/list', summary="列出所有任务")
|
|
async def index(request: Request, page_no: int = 1, page_size: int = 20):
|
|
"""
|
|
列出所有任务
|
|
:param page_no: 1
|
|
:param page_size: 20
|
|
:return:
|
|
"""
|
|
offset = (page_no - 1) * page_size
|
|
|
|
query = QuerySet(Task).filter(is_canceled=False, is_valid=True, is_active=True)
|
|
count = await query.count()
|
|
tasks = await query.limit(page_size).offset(offset)
|
|
|
|
|
|
return respond_to(code=200, data=dict(count=count, data=tasks))
|