feat: Add badge earned info to user profile badges API response #159
@@ -203,7 +203,9 @@ async def profile_page(
|
|||||||
|
|
||||||
badges = list(get_table("badges").find(user_uid=profile_user["uid"]))
|
badges = list(get_table("badges").find(user_uid=profile_user["uid"]))
|
||||||
for b in badges:
|
for b in badges:
|
||||||
b["icon"] = get_badge(b["badge_name"]).get("icon")
|
badge_meta = get_badge(b["badge_name"])
|
||||||
|
b["icon"] = badge_meta.get("icon")
|
||||||
|
b["description"] = badge_meta.get("description")
|
||||||
achievements = build_achievements({b["badge_name"] for b in badges})
|
achievements = build_achievements({b["badge_name"] for b in badges})
|
||||||
badge_total = sum(group["total"] for group in achievements)
|
badge_total = sum(group["total"] for group in achievements)
|
||||||
badge_earned = sum(group["earned"] for group in achievements)
|
badge_earned = sum(group["earned"] for group in achievements)
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ class PollOut(_Out):
|
|||||||
class BadgeOut(_Out):
|
class BadgeOut(_Out):
|
||||||
name: Optional[str] = Field(None, alias="badge_name")
|
name: Optional[str] = Field(None, alias="badge_name")
|
||||||
icon: Optional[str] = None
|
icon: Optional[str] = None
|
||||||
|
description: Optional[str] = None
|
||||||
created_at: Optional[str] = None
|
created_at: Optional[str] = None
|
||||||
model_config = ConfigDict(populate_by_name=True)
|
model_config = ConfigDict(populate_by_name=True)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user