fix(profile-filter): support owner object payloads and normalize owners response

This commit is contained in:
2026-03-06 15:02:03 +03:00
parent 633c4948f1
commit 5bd20c74fe
4 changed files with 167 additions and 5 deletions

View File

@@ -343,9 +343,30 @@ class ProfileService:
return []
normalized: List[str] = []
for owner in owners:
token = self._normalize_username(str(owner or ""))
if token and token not in normalized:
normalized.append(token)
owner_candidates: List[Any]
if isinstance(owner, dict):
first_name = self._sanitize_username(str(owner.get("first_name") or ""))
last_name = self._sanitize_username(str(owner.get("last_name") or ""))
full_name = " ".join(part for part in [first_name, last_name] if part).strip()
snake_name = "_".join(part for part in [first_name, last_name] if part).strip("_")
owner_candidates = [
owner.get("username"),
owner.get("user_name"),
owner.get("name"),
owner.get("full_name"),
first_name,
last_name,
full_name or None,
snake_name or None,
owner.get("email"),
]
else:
owner_candidates = [owner]
for candidate in owner_candidates:
token = self._normalize_username(str(candidate or ""))
if token and token not in normalized:
normalized.append(token)
return normalized
# [/DEF:_normalize_owner_tokens:Function]
# [/DEF:ProfileService:Class]