Skip to content

Commit 91aeb59

Browse files
committed
feat: implement delete API for /event/<eid> route
1 parent 9f03e92 commit 91aeb59

2 files changed

Lines changed: 40 additions & 3 deletions

File tree

src/event/crud.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from collections.abc import Sequence
22

3-
from sqlalchemy import select, or_, and_, extract
3+
from sqlalchemy import select, or_, and_, extract, delete
44
from sqlalchemy.ext.asyncio import AsyncSession
55

66
from event.tables import EventDB
@@ -56,4 +56,15 @@ async def create_event(
5656
db_session: AsyncSession,
5757
info: EventDB
5858
):
59-
db_session.add(info)
59+
await db_session.add(info)
60+
61+
62+
async def delete_event(
63+
db_session: AsyncSession,
64+
eid: int
65+
):
66+
result = await db_session.execute(delete(EventDB).where(
67+
EventDB.eid == eid
68+
))
69+
# Return the number of rows affected
70+
return result.rowcount

src/event/urls.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,30 @@ async def create_event(
9090
await db_session.commit()
9191
await db_session.refresh(new_event)
9292

93-
return new_event
93+
return new_event
94+
95+
96+
@router.delete(
97+
"/{eid}",
98+
description="Delete an event",
99+
response_model=SuccessResponse,
100+
responses={
101+
404:{"description": "Event doesn't exist."}
102+
},
103+
operation_id="delete_event",
104+
# dependecies=[Depends()],
105+
)
106+
async def delete_event(
107+
db_session: database.DBSession,
108+
eid: int
109+
):
110+
rows_deleted = await event.crud.delete_event(db_session, eid)
111+
112+
if rows_deleted == 0:
113+
raise HTTPException(
114+
status_code=status.HTTP_404_NOT_FOUND,
115+
detail="Event doesn't exist."
116+
)
117+
118+
await db_session.commit()
119+
return SuccessResponse(success=True)

0 commit comments

Comments
 (0)