From 2cafef095d8cc0b755ee3eea419ae28101e5b0b7 Mon Sep 17 00:00:00 2001 From: Aditya Gupta Date: Mon, 29 Jun 2026 13:58:45 +0530 Subject: [PATCH] Added job repository, implemented create and listall functions --- app/repositories/job_repository.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 app/repositories/job_repository.py diff --git a/app/repositories/job_repository.py b/app/repositories/job_repository.py new file mode 100644 index 0000000..3f5e135 --- /dev/null +++ b/app/repositories/job_repository.py @@ -0,0 +1,25 @@ +from typing import List, Optional, Any, Dict +from sqlalchemy import select +from sqlalchemy.ext.asyncio import AsyncSession +from app.db.models.job import Job + + +class JobRepository: + def __init__(self, db: AsyncSession): + self.db = db + + async def create(self, filename: str) -> Job: + job = Job(filename=filename, status="pending") + self.db.add(job) + await self.db.flush() + return job + + + async def list_all(self, status: Optional[str] = None) -> List[Job]: + query = select(Job) + if status: + query = query.where(Job.status == status) + query = query.order_by(Job.created_at.desc()) + result = await self.db.execute(query) + return list(result.scalars().all()) +