22# -*- coding: utf-8 -*-
33from typing import Annotated
44
5- from fastapi import APIRouter , Depends , Path
5+ from fastapi import APIRouter , Depends , Path , Query
66
7+ from backend .app .task .schema .scheduler import CreateTaskSchedulerParam , GetTaskSchedulerDetail , UpdateTaskSchedulerParam
78from backend .app .task .service .scheduler_service import task_scheduler_service
8- from backend .common .pagination import DependsPagination
9+ from backend .common .pagination import DependsPagination , PageData , paging_data
910from backend .common .response .response_schema import ResponseModel , ResponseSchemaModel , response_base
1011from backend .common .security .jwt import DependsJwtAuth
1112from backend .common .security .permission import RequestPermission
1213from backend .common .security .rbac import DependsRBAC
14+ from backend .database .db import CurrentSession
1315
1416router = APIRouter ()
1517
1618
1719@router .get ('/all' , summary = '获取所有任务调度' , dependencies = [DependsJwtAuth ])
18- async def get_all_schedulers () -> ResponseModel :
19- return response_base .success ()
20+ async def get_all_task_schedulers () -> ResponseModel :
21+ schedulers = await task_scheduler_service .get_all ()
22+ return response_base .success (data = schedulers )
2023
2124
2225@router .get ('/{pk}' , summary = '获取任务调度详情' , dependencies = [DependsJwtAuth ])
23- async def get_scheduler ():
24- return response_base .success ()
26+ async def get_task_scheduler (pk : Annotated [int , Path (description = '任务调度 ID' )]):
27+ task_scheduler = await task_scheduler_service .get (pk = pk )
28+ return response_base .success (data = task_scheduler )
2529
2630
2731@router .get (
@@ -32,8 +36,14 @@ async def get_scheduler():
3236 DependsPagination ,
3337 ],
3438)
35- async def get_scheduler_paged ():
36- return response_base .success ()
39+ async def get_task_scheduler_paged (
40+ db : CurrentSession ,
41+ name : Annotated [int , Path (description = '任务调度名称' )] = None ,
42+ type : Annotated [int | None , Query (description = '任务调度类型' )] = None ,
43+ ) -> ResponseSchemaModel [PageData [GetTaskSchedulerDetail ]]:
44+ task_scheduler_select = await task_scheduler_service .get_select (name = name , type = type )
45+ page_data = await paging_data (db , task_scheduler_select )
46+ return response_base .success (data = page_data )
3747
3848
3949@router .post (
@@ -44,7 +54,8 @@ async def get_scheduler_paged():
4454 DependsRBAC ,
4555 ],
4656)
47- async def create_scheduler ():
57+ async def create_task_scheduler (obj : CreateTaskSchedulerParam ):
58+ await task_scheduler_service .create (obj = obj )
4859 return response_base .success ()
4960
5061
@@ -56,8 +67,11 @@ async def create_scheduler():
5667 DependsRBAC ,
5768 ],
5869)
59- async def update_scheduler (pk : Annotated [int , Path (description = '任务调度 ID' )]):
60- return response_base .success ()
70+ async def update_task_scheduler (pk : Annotated [int , Path (description = '任务调度 ID' )], obj : UpdateTaskSchedulerParam ):
71+ count = await task_scheduler_service .update (pk = pk , obj = obj )
72+ if count > 0 :
73+ return response_base .success ()
74+ return response_base .fail ()
6175
6276
6377@router .put (
@@ -68,8 +82,11 @@ async def update_scheduler(pk: Annotated[int, Path(description='任务调度 ID'
6882 DependsRBAC ,
6983 ],
7084)
71- async def update_scheduler_status (pk : Annotated [int , Path (description = '任务调度 ID' )]):
72- return response_base .success ()
85+ async def update_task_scheduler_status (pk : Annotated [int , Path (description = '任务调度 ID' )]):
86+ count = await task_scheduler_service .update_status (pk = pk )
87+ if count > 0 :
88+ return response_base .success ()
89+ return response_base .fail ()
7390
7491
7592@router .delete (
@@ -80,8 +97,11 @@ async def update_scheduler_status(pk: Annotated[int, Path(description='任务调
8097 DependsRBAC ,
8198 ],
8299)
83- async def delete_scheduler (pk : Annotated [int , Path (description = '任务调度 ID' )]):
84- return response_base .success ()
100+ async def delete_task_scheduler (pk : Annotated [int , Path (description = '任务调度 ID' )]):
101+ count = await task_scheduler_service .delete (pk = pk )
102+ if count > 0 :
103+ return response_base .success ()
104+ return response_base .fail ()
85105
86106
87107@router .post (
@@ -93,8 +113,8 @@ async def delete_scheduler(pk: Annotated[int, Path(description='任务调度 ID'
93113 ],
94114)
95115async def execute_task (pk : Annotated [int , Path (description = '任务调度 ID' )]) -> ResponseSchemaModel [str ]:
96- task = task_scheduler_service .execute (pk = pk )
97- return response_base .success (data = task )
116+ await task_scheduler_service .execute (pk = pk )
117+ return response_base .success ()
98118
99119
100120@router .delete (
@@ -106,5 +126,5 @@ async def execute_task(pk: Annotated[int, Path(description='任务调度 ID')])
106126 ],
107127)
108128async def revoke_task (task_id : Annotated [str , Path (description = '任务 UUID' )]) -> ResponseModel :
109- task_scheduler_service .revoke (task_id = task_id )
129+ await task_scheduler_service .revoke (task_id = task_id )
110130 return response_base .success ()
0 commit comments