Skip to content

Commit 1d4174c

Browse files
Tony QiuTony Qiu
authored andcommitted
fix email_service
1 parent b7cb966 commit 1d4174c

File tree

1 file changed

+31
-15
lines changed

1 file changed

+31
-15
lines changed

backend/services/email_service.py

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,27 +24,42 @@ def __init__(self):
2424
self.base_url = "https://api.resend.com/emails"
2525

2626
def _get_events_added_today(self):
27-
"""Fetch events that were added to the database today"""
28-
today = date.today()
27+
"""Fetch events that were added to the database since yesterday at midnight"""
28+
from datetime import timedelta
29+
from django.utils import timezone
2930

31+
# Get yesterday at midnight (12:00 AM)
32+
yesterday_midnight = timezone.now().replace(
33+
hour=0, minute=0, second=0, microsecond=0
34+
) - timedelta(days=1)
35+
36+
# Get events added since yesterday midnight, prefetch their dates
3037
events = (
31-
Events.objects.filter(added_at__date=today)
32-
.select_related()
33-
.order_by("dtstart_utc", "dtend_utc")
38+
Events.objects.filter(added_at__gte=yesterday_midnight)
39+
.prefetch_related("event_dates")
40+
.distinct()
3441
)
3542

3643
events_data = []
3744
for event in events:
38-
# Format the event data for email template
39-
event_date = event.dtstart_utc.strftime("%B %d, %Y")
45+
# Get the earliest event date for this event
46+
event_date_obj = event.event_dates.order_by("dtstart_utc").first()
47+
48+
if event_date_obj:
49+
# Format the event data for email template
50+
event_date = event_date_obj.dtstart_utc.strftime("%B %d, %Y")
4051

41-
# Format time range
42-
start_time = event.dtstart_utc.strftime("%I:%M %p").lstrip("0")
43-
if event.dtend_utc:
44-
end_time = event.dtend_utc.strftime("%I:%M %p").lstrip("0")
45-
time_range = f"{start_time} - {end_time}"
52+
# Format time range
53+
start_time = event_date_obj.dtstart_utc.strftime("%I:%M %p").lstrip("0")
54+
if event_date_obj.dtend_utc:
55+
end_time = event_date_obj.dtend_utc.strftime("%I:%M %p").lstrip("0")
56+
time_range = f"{start_time} - {end_time}"
57+
else:
58+
time_range = f"Starting at {start_time}"
4659
else:
47-
time_range = f"Starting at {start_time}"
60+
# If no event dates, use placeholder values
61+
event_date = "Date TBD"
62+
time_range = "Time TBD"
4863

4964
club_name = (
5065
event.ig_handle
@@ -53,14 +68,15 @@ def _get_events_added_today(self):
5368
or event.tiktok_handle
5469
or event.fb_handle
5570
or event.school
71+
or "Unknown Club"
5672
)
5773

5874
events_data.append(
5975
{
60-
"name": event.title,
76+
"name": event.title or "Untitled Event",
6177
"date": event_date,
6278
"time": time_range,
63-
"location": event.location,
79+
"location": event.location or "Location TBD",
6480
"description": event.description or "No description available.",
6581
"club": club_name,
6682
"image_url": event.source_image_url,

0 commit comments

Comments
 (0)