From ef4509a532decafeab62dd844c9404541a6f58a1 Mon Sep 17 00:00:00 2001 From: arsam Date: Fri, 18 Sep 2026 23:06:23 +0330 Subject: [PATCH] Import source: axon/routers/jobs Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality. --- axon/routers/jobs.py | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 axon/routers/jobs.py diff --git a/axon/routers/jobs.py b/axon/routers/jobs.py new file mode 100644 index 0000000..ed47bdc --- /dev/null +++ b/axon/routers/jobs.py @@ -0,0 +1,47 @@ +from fastapi import APIRouter, HTTPException + +from axon.models import ( + CrawlRequest, + JobCreateResponse, + JobResponse, + MapRequest, + ResearchRequest, +) +from axon.routers.crawl import crawl +from axon.routers.map import map_site +from axon.routers.research import research +from axon.services.jobs import create_job, get_job + +router = APIRouter() + + +@router.post("/research/jobs", response_model=JobCreateResponse) +async def create_research_job(request: ResearchRequest) -> JobCreateResponse: + job = create_job("research", lambda: research(request)) + return JobCreateResponse(job_id=job.job_id, status=job.status) + + +@router.post("/crawl/jobs", response_model=JobCreateResponse) +async def create_crawl_job(request: CrawlRequest) -> JobCreateResponse: + job = create_job("crawl", lambda: crawl(request)) + return JobCreateResponse(job_id=job.job_id, status=job.status) + + +@router.post("/map/jobs", response_model=JobCreateResponse) +async def create_map_job(request: MapRequest) -> JobCreateResponse: + job = create_job("map", lambda: map_site(request)) + return JobCreateResponse(job_id=job.job_id, status=job.status) + + +@router.get("/jobs/{job_id}", response_model=JobResponse) +async def read_job(job_id: str) -> JobResponse: + job = get_job(job_id) + if job is None: + raise HTTPException(status_code=404, detail="Job not found") + return JobResponse( + job_id=job.job_id, + kind=job.kind, + status=job.status, + result=job.result, + error=job.error, + )