From b879f2881374bc1de932dc2ec591c7119937fec6 Mon Sep 17 00:00:00 2001 From: fullsizemalt <106900403+fullsizemalt@users.noreply.github.com> Date: Sun, 21 Dec 2025 01:13:07 -0800 Subject: [PATCH] fix(backend): Handle missing users in feed API gracefully --- backend/routers/feed.py | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/backend/routers/feed.py b/backend/routers/feed.py index 95143c1..f9dc0f8 100644 --- a/backend/routers/feed.py +++ b/backend/routers/feed.py @@ -41,29 +41,53 @@ def get_global_feed( for r in reviews: user = session.get(User, r.user_id) + user_data = {"id": 0, "username": "Deleted User", "avatar": None} + if user: + user_data = { + "id": user.id, + "username": user.email.split("@")[0] if user.email else "User", + "avatar": user.avatar + } + feed_items.append(FeedItem( type="review", - timestamp=r.created_at or datetime.utcnow(), # Handle missing created_at if any + timestamp=r.created_at or datetime.utcnow(), data=r, - user={"id": user.id, "username": user.email.split("@")[0], "avatar": user.avatar} if user else {} + user=user_data )) for a in attendance: user = session.get(User, a.user_id) + user_data = {"id": 0, "username": "Deleted User", "avatar": None} + if user: + user_data = { + "id": user.id, + "username": user.email.split("@")[0] if user.email else "User", + "avatar": user.avatar + } + feed_items.append(FeedItem( type="attendance", timestamp=a.created_at, data=a, - user={"id": user.id, "username": user.email.split("@")[0], "avatar": user.avatar} if user else {} + user=user_data )) for p in posts: user = session.get(User, p.user_id) + user_data = {"id": 0, "username": "Deleted User", "avatar": None} + if user: + user_data = { + "id": user.id, + "username": user.email.split("@")[0] if user.email else "User", + "avatar": user.avatar + } + feed_items.append(FeedItem( type="post", timestamp=p.created_at, data=p, - user={"id": user.id, "username": user.email.split("@")[0], "avatar": user.avatar} if user else {} + user=user_data )) # Sort by timestamp desc