added logging to jobs route

This commit is contained in:
michael 2025-10-08 18:08:22 -05:00
parent eddc687f37
commit 58054ac813
2 changed files with 52 additions and 35 deletions

View file

@ -217,47 +217,64 @@ async def list_jobs(
current_user: User = Depends(get_current_user),
db: AsyncIOMotorDatabase = Depends(get_database),
):
query = {}
print(f"🔍 DEBUG: list_jobs called by user {current_user.id}, status={status}, mine={mine}")
try:
query = {}
if status:
if ',' in status:
# Handle comma-separated status values
status_list = [s.strip() for s in status.split(',')]
query["status"] = {"$in": status_list}
else:
query["status"] = status
if status:
if ',' in status:
# Handle comma-separated status values
status_list = [s.strip() for s in status.split(',')]
query["status"] = {"$in": status_list}
else:
query["status"] = status
if mine or current_user.role == UserRole.CLIENT:
query["client_id"] = str(current_user.id)
if mine or current_user.role == UserRole.CLIENT:
query["client_id"] = str(current_user.id)
# Get total count
total = await db.jobs.count_documents(query)
# Get total count
total = await db.jobs.count_documents(query)
# Get paginated results
skip = (page - 1) * size
cursor = db.jobs.find(query).sort("created_at", -1).skip(skip).limit(size)
jobs = await cursor.to_list(length=size)
# Get paginated results
skip = (page - 1) * size
cursor = db.jobs.find(query).sort("created_at", -1).skip(skip).limit(size)
jobs = await cursor.to_list(length=size)
job_responses = []
for job_doc in jobs:
job_responses.append(JobResponse(
id=str(job_doc["_id"]),
title=job_doc["title"],
status=job_doc["status"],
source=job_doc["source"],
requested_outputs=RequestedOutputs(**job_doc["requested_outputs"]),
review=job_doc.get("review", {"notes": "", "history": []}),
outputs=job_doc.get("outputs"),
created_at=job_doc["created_at"].isoformat(),
updated_at=job_doc["updated_at"].isoformat()
))
job_responses = []
print(f"🔍 DEBUG: Found {len(jobs)} jobs, building responses...")
for i, job_doc in enumerate(jobs):
try:
print(f"🔍 DEBUG: Processing job {i}: {job_doc.get('_id')}")
job_responses.append(JobResponse(
id=str(job_doc["_id"]),
title=job_doc["title"],
status=job_doc["status"],
source=job_doc["source"],
requested_outputs=RequestedOutputs(**job_doc["requested_outputs"]),
review=job_doc.get("review", {"notes": "", "history": []}),
outputs=job_doc.get("outputs"),
created_at=job_doc["created_at"].isoformat(),
updated_at=job_doc["updated_at"].isoformat()
))
print(f"🔍 DEBUG: Job {i} processed successfully")
except Exception as e:
print(f"🚨 ERROR processing job {i}: {e}")
import traceback
print(traceback.format_exc())
raise
return JobListResponse(
jobs=job_responses,
total=total,
page=page,
size=size
)
print(f"🔍 DEBUG: All jobs processed, returning response")
return JobListResponse(
jobs=job_responses,
total=total,
page=page,
size=size
)
except Exception as e:
print(f"🚨 EXCEPTION in list_jobs: {e}")
import traceback
print(traceback.format_exc())
raise
@router.get("/{job_id}", response_model=JobResponse)