Retain original bank statements for 24 hours

This commit is contained in:
A R R R Associates
2026-08-05 10:44:41 +05:30
parent fd2a572d06
commit 9bfc666dad
4 changed files with 75 additions and 23 deletions
+32 -1
View File
@@ -16,7 +16,18 @@ from app.core.templating import templates
from app.modules.core.rbac.deps import get_user_permissions, get_user_roles
from .parsers.registry import BANK_OPTIONS
from .service import can_use, create_job_folder, delete_owned_job, enqueue_job, ensure_worker_started, get_owned_job, job_view, list_user_jobs, save_uploads
from .service import (
can_use,
create_job_folder,
delete_owned_job,
enqueue_job,
ensure_worker_started,
get_owned_job,
get_owned_original_statement,
job_view,
list_user_jobs,
save_uploads,
)
router = APIRouter(prefix="/tools/bank-statement-analyzer", tags=["bank-statement-analyzer-ui"])
@@ -186,6 +197,26 @@ def download(job_id: str, request: Request):
db.close()
@router.get("/jobs/{job_id}/statements/{file_index}/download")
def download_original_statement(job_id: str, file_index: int, request: Request):
db = CommonSessionLocal()
try:
user, roles, denied = _auth(request, db)
if denied:
return denied
resolved = get_owned_original_statement(user.id, job_id, file_index)
if not resolved:
return not_found_response(request, "Original statement is unavailable or has expired.")
_job, path = resolved
return FileResponse(
path=path,
filename=path.name,
media_type="application/pdf",
)
finally:
db.close()
@router.post("/jobs/{job_id}/delete")
def delete(job_id: str, request: Request, csrf_token: str = Form(...)):
db = CommonSessionLocal()