From 8990063837b8301d5d2236120b8f9370ee1af6f5 Mon Sep 17 00:00:00 2001 From: fullsizemalt <106900403+fullsizemalt@users.noreply.github.com> Date: Wed, 24 Dec 2025 21:49:10 -0800 Subject: [PATCH] fix: search endpoint crashing on User.username reference User.username doesn't exist - usernames are in Profile model. Now properly searches Profile.username and joins results. --- backend/routers/search.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/backend/routers/search.py b/backend/routers/search.py index 4e57960..cafd432 100644 --- a/backend/routers/search.py +++ b/backend/routers/search.py @@ -47,13 +47,29 @@ def global_search( .limit(limit) ).all() - # Search Users (by username or email) + # Search Users (by email or profile username) users = session.exec( select(User) - .where((col(User.email).ilike(q_str)) | (col(User.username).ilike(q_str))) + .where(col(User.email).ilike(q_str)) .limit(limit) ).all() + # Also search Profiles for username matches + from models import Profile + profile_matches = session.exec( + select(Profile) + .where(col(Profile.username).ilike(q_str)) + .limit(limit) + ).all() + # Add unique users from profile matches + existing_user_ids = {u.id for u in users} + for p in profile_matches: + if p.user_id not in existing_user_ids: + user = session.get(User, p.user_id) + if user: + users.append(user) + existing_user_ids.add(user.id) + # Search Nicknames nicknames = session.exec( select(PerformanceNickname)