users: Separate view function to get singer user data.

This will avoid overloading a function with similar parameters when
we add `user_ids` parameter to `get_members_backend`.
This commit is contained in:
Aman Agrawal
2025-05-12 15:57:13 +05:30
committed by Tim Abbott
parent 25c0b279f7
commit b459f6f3d2
2 changed files with 20 additions and 9 deletions

View File

@@ -753,22 +753,32 @@ def get_user_data(
@typed_endpoint
def get_members_backend(
def get_member_backend(
request: HttpRequest,
user_profile: UserProfile,
user_id: int | None = None,
user_id: int,
*,
include_custom_profile_fields: Json[bool] = False,
client_gravatar: Json[bool] = True,
) -> HttpResponse:
target_user = None
if user_id is not None:
target_user = access_user_by_id(
user_profile, user_id, allow_deactivated=True, allow_bots=True, for_admin=False
)
target_user = access_user_by_id(
user_profile, user_id, allow_deactivated=True, allow_bots=True, for_admin=False
)
data = get_user_data(user_profile, include_custom_profile_fields, client_gravatar, target_user)
return json_success(request, data)
@typed_endpoint
def get_members_backend(
request: HttpRequest,
user_profile: UserProfile,
*,
include_custom_profile_fields: Json[bool] = False,
client_gravatar: Json[bool] = True,
) -> HttpResponse:
data = get_user_data(
user_profile, include_custom_profile_fields, client_gravatar
)
return json_success(request, data)

View File

@@ -232,6 +232,7 @@ from zerver.views.users import (
deactivate_user_backend,
deactivate_user_own_backend,
get_bots_backend,
get_member_backend,
get_members_backend,
get_profile_backend,
get_subscription_backend,
@@ -323,7 +324,7 @@ v1_api_and_json_patterns = [
rest_path("users/<int:user_id>/reactivate", POST=reactivate_user_backend),
rest_path(
"users/<int:user_id>",
GET=get_members_backend,
GET=get_member_backend,
PATCH=update_user_by_id_api,
DELETE=deactivate_user_backend,
),