Skip to content

Commit 7a883e6

Browse files
committed
More graceful handling of non singular results
1 parent ca87b6b commit 7a883e6

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

backend/app/api/routes/documents.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from fastapi import APIRouter, File, UploadFile, HTTPException
55
from sqlmodel import select, update, and_
6+
from sqlalchemy.exc import NoResultFound, MultipleResultsFound
67

78
from app.api.deps import CurrentUser, SessionDep
89
from app.core.cloud import AmazonCloudStorage
@@ -92,17 +93,14 @@ def doc_info(
9293
select(Document)
9394
.where(Document.id == doc_id)
9495
)
95-
docs = (session
96-
.exec(statement)
97-
.all())
98-
n = len(docs)
99-
if n == 1:
100-
return docs[0]
101-
102-
(status_code, reason) = (500, 'not unique') if n else (400, 'not found')
103-
detail = f'Document "{doc_id}" {reason}'
96+
result = session.exec(statement)
10497

105-
raise HTTPException(status_code=status_code, detail=detail)
98+
try:
99+
return result.one()
100+
except NoResultFound as err:
101+
raise HTTPException(status_code=404, detail=str(err))
102+
except MultipleResultsFound as err:
103+
raise HTTPException(status_code=500, detail=str(err))
106104

107105
# @router.get("/assign", response_model=DocumentList)
108106
# def assign_doc(

0 commit comments

Comments
 (0)