diff --git a/backend/app/api/v1/__pycache__/routes_jobs.cpython-313.pyc b/backend/app/api/v1/__pycache__/routes_jobs.cpython-313.pyc index 2f1b8fe..96a52d1 100644 Binary files a/backend/app/api/v1/__pycache__/routes_jobs.cpython-313.pyc and b/backend/app/api/v1/__pycache__/routes_jobs.cpython-313.pyc differ diff --git a/backend/app/api/v1/routes_jobs.py b/backend/app/api/v1/routes_jobs.py index 63ab65c..14b0766 100644 --- a/backend/app/api/v1/routes_jobs.py +++ b/backend/app/api/v1/routes_jobs.py @@ -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)