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:
|
for r in reviews:
|
||||||
user = session.get(User, r.user_id)
|
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(
|
feed_items.append(FeedItem(
|
||||||
type="review",
|
type="review",
|
||||||
timestamp=r.created_at or datetime.utcnow(), # Handle missing created_at if any
|
timestamp=r.created_at or datetime.utcnow(),
|
||||||
data=r,
|
data=r,
|
||||||
user={"id": user.id, "username": user.email.split("@")[0], "avatar": user.avatar} if user else {}
|
user=user_data
|
||||||
))
|
))
|
||||||
|
|
||||||
for a in attendance:
|
for a in attendance:
|
||||||
user = session.get(User, a.user_id)
|
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(
|
feed_items.append(FeedItem(
|
||||||
type="attendance",
|
type="attendance",
|
||||||
timestamp=a.created_at,
|
timestamp=a.created_at,
|
||||||
data=a,
|
data=a,
|
||||||
user={"id": user.id, "username": user.email.split("@")[0], "avatar": user.avatar} if user else {}
|
user=user_data
|
||||||
))
|
))
|
||||||
|
|
||||||
for p in posts:
|
for p in posts:
|
||||||
user = session.get(User, p.user_id)
|
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(
|
feed_items.append(FeedItem(
|
||||||
type="post",
|
type="post",
|
||||||
timestamp=p.created_at,
|
timestamp=p.created_at,
|
||||||
data=p,
|
data=p,
|
||||||
user={"id": user.id, "username": user.email.split("@")[0], "avatar": user.avatar} if user else {}
|
user=user_data
|
||||||
))
|
))
|
||||||
|
|
||||||
# Sort by timestamp desc
|
# Sort by timestamp desc
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue