fix(profile-filter): support owner object payloads and normalize owners response
This commit is contained in:
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user