Import source: axon/routers/jobs
Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality.
This commit is contained in:
@@ -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,
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user