major server manager overhaul
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
from fastapi import APIRouter, HTTPException
|
||||
from pydantic import BaseModel
|
||||
from typing import List, Optional, Dict, Any
|
||||
from ..scheduler import add_job, get_jobs, remove_job
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
class JobCreate(BaseModel):
|
||||
task_name: str
|
||||
cron_expression: str
|
||||
args: Optional[List[Any]] = []
|
||||
kwargs: Optional[Dict[str, Any]] = {}
|
||||
|
||||
@router.get("/")
|
||||
def list_jobs():
|
||||
return get_jobs()
|
||||
|
||||
@router.post("/")
|
||||
def create_job(job: JobCreate):
|
||||
try:
|
||||
job_id = add_job(job.task_name, job.cron_expression, job.args, job.kwargs)
|
||||
return {"id": job_id, "message": "Job scheduled"}
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=400, detail=str(e))
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
@router.delete("/{job_id}")
|
||||
def delete_job(job_id: str):
|
||||
try:
|
||||
remove_job(job_id)
|
||||
return {"message": "Job deleted"}
|
||||
except Exception:
|
||||
raise HTTPException(status_code=404, detail="Job not found")
|
||||
Reference in New Issue
Block a user