Skip to content

Commit 0d1dcb1

Browse files
committed
feat: added API and db function for get events for given year and month
1 parent 784e384 commit 0d1dcb1

2 files changed

Lines changed: 41 additions & 1 deletion

File tree

src/event/crud.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,27 @@ async def get_events_for_this_year(
2626
extract('year', EventDB.end_time) == year
2727
)
2828
))).all()
29+
return events
30+
31+
async def get_events_for_this_year_month(
32+
db_session: AsyncSession,
33+
year: int,
34+
month: int,
35+
) -> Sequence[EventDB]:
36+
events = (
37+
await db_session.scalars(
38+
select(EventDB).where(
39+
or_(
40+
and_(
41+
extract('year', EventDB.start_time) == year,
42+
extract('month', EventDB.start_time) == month
43+
),
44+
and_(
45+
extract('year', EventDB.end_time) == year,
46+
extract('month', EventDB.end_time) == month
47+
)
48+
)
49+
)
50+
)
51+
).all()
2952
return events

src/event/urls.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,21 @@ async def get_events_for_this_year(
4848
):
4949
events_list = await event.crud.get_events_for_this_year(db_session, year)
5050

51-
return events_list
51+
return events_list
52+
53+
54+
@router.get(
55+
"/{year}/{month}",
56+
description="Get events that start OR end in the given year and month",
57+
response_model=list[EventPublic],
58+
# responses= {}
59+
operation_id="get_events_for_this_year_month"
60+
)
61+
async def get_events_for_this_year_month(
62+
db_session: database.DBSession,
63+
year: int,
64+
month: int
65+
):
66+
events_list = await event.crud.get_events_for_this_year_month(db_session, year, month)
67+
68+
return events_list

0 commit comments

Comments
 (0)