Skip to content

Commit 6f2fe78

Browse files
committed
Better failure when task name already exists (closes #64)
1 parent 7b0afb6 commit 6f2fe78

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

fractal_server/app/api/v1/task.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
from fastapi import APIRouter
99
from fastapi import Depends
10+
from fastapi import HTTPException
1011
from fastapi import status
1112
from sqlalchemy.exc import IntegrityError
1213
from sqlmodel import select
@@ -96,9 +97,16 @@ async def create_task(
9697
db: AsyncSession = Depends(get_db),
9798
):
9899
db_task = Task.from_orm(task)
99-
db.add(db_task)
100-
await db.commit()
101-
await db.refresh(db_task)
100+
try:
101+
db.add(db_task)
102+
await db.commit()
103+
await db.refresh(db_task)
104+
except IntegrityError as e:
105+
await db.rollback()
106+
raise HTTPException(
107+
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
108+
detail=str(e),
109+
)
102110
return db_task
103111

104112

0 commit comments

Comments
 (0)