fix(backend): Handle missing users in feed API gracefully
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
This commit is contained in:
parent
47420b6e57
commit
b879f28813
1 changed files with 28 additions and 4 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue