mirror of https://github.com/zulip/zulip.git
api: Return 'user_id' in 'POST /users' response.
This adds 'user_id' to the simple success response for 'POST /users' api endpoint, to make it convenient for API clients to get details about users they just created. Appropriate changes have been made in the docs and test_users.py. Fixes #16072.
This commit is contained in:
parent
8393f64120
commit
63173d5554
|
@ -15,6 +15,8 @@ below features are supported.
|
||||||
* [`GET users/me/subscriptions`](/api/get-subscriptions), [`GET
|
* [`GET users/me/subscriptions`](/api/get-subscriptions), [`GET
|
||||||
/streams`](/api/get-streams): Added `date_created` to Stream
|
/streams`](/api/get-streams): Added `date_created` to Stream
|
||||||
objects.
|
objects.
|
||||||
|
* [`POST /users`](/api/create-user), `POST /bots`: The ID of the newly
|
||||||
|
created user is now returned in the response.
|
||||||
|
|
||||||
Feature levels 28 and 29 are reserved for future use in 3.x bug fix
|
Feature levels 28 and 29 are reserved for future use in 3.x bug fix
|
||||||
releases.
|
releases.
|
||||||
|
|
|
@ -27,6 +27,10 @@ More examples and documentation can be found [here](https://github.com/zulip/zul
|
||||||
|
|
||||||
## Response
|
## Response
|
||||||
|
|
||||||
|
#### Return values
|
||||||
|
|
||||||
|
{generate_return_values_table|zulip.yaml|/users:post}
|
||||||
|
|
||||||
#### Example response
|
#### Example response
|
||||||
|
|
||||||
A typical successful JSON response may look like:
|
A typical successful JSON response may look like:
|
||||||
|
|
|
@ -29,7 +29,7 @@ DESKTOP_WARNING_VERSION = "5.2.0"
|
||||||
#
|
#
|
||||||
# Changes should be accompanied by documentation explaining what the
|
# Changes should be accompanied by documentation explaining what the
|
||||||
# new level means in templates/zerver/api/changelog.md.
|
# new level means in templates/zerver/api/changelog.md.
|
||||||
API_FEATURE_LEVEL = 27
|
API_FEATURE_LEVEL = 30
|
||||||
|
|
||||||
# Bump the minor PROVISION_VERSION to indicate that folks should provision
|
# Bump the minor PROVISION_VERSION to indicate that folks should provision
|
||||||
# only when going from an old version of the code to a newer version. Bump
|
# only when going from an old version of the code to a newer version. Bump
|
||||||
|
|
|
@ -4081,7 +4081,16 @@ paths:
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: "#/components/schemas/JsonSuccess"
|
allOf:
|
||||||
|
- $ref: "#/components/schemas/JsonSuccess"
|
||||||
|
- properties:
|
||||||
|
user_id:
|
||||||
|
type: integer
|
||||||
|
description: |
|
||||||
|
The ID assigned to the newly created user.
|
||||||
|
|
||||||
|
**Changes**: New in Zulip 4.0 (feature level 30).
|
||||||
|
- example: {"msg": "", "result": "success", "user_id": 25}
|
||||||
"400":
|
"400":
|
||||||
description: Bad request.
|
description: Bad request.
|
||||||
content:
|
content:
|
||||||
|
|
|
@ -175,6 +175,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin):
|
||||||
if e['event']['type'] == 'realm_bot'
|
if e['event']['type'] == 'realm_bot'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
self.assertEqual(result["user_id"], bot.id)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
dict(
|
dict(
|
||||||
type='realm_bot',
|
type='realm_bot',
|
||||||
|
|
|
@ -823,7 +823,9 @@ class AdminCreateUserTest(ZulipTestCase):
|
||||||
|
|
||||||
# Romeo is a newly registered user
|
# Romeo is a newly registered user
|
||||||
new_user = get_user_by_delivery_email('romeo@zulip.net', get_realm('zulip'))
|
new_user = get_user_by_delivery_email('romeo@zulip.net', get_realm('zulip'))
|
||||||
|
result = orjson.loads(result.content)
|
||||||
self.assertEqual(new_user.full_name, 'Romeo Montague')
|
self.assertEqual(new_user.full_name, 'Romeo Montague')
|
||||||
|
self.assertEqual(new_user.id, result['user_id'])
|
||||||
|
|
||||||
# Make sure the recipient field is set correctly.
|
# Make sure the recipient field is set correctly.
|
||||||
self.assertEqual(new_user.recipient, Recipient.objects.get(type=Recipient.PERSONAL,
|
self.assertEqual(new_user.recipient, Recipient.objects.get(type=Recipient.PERSONAL,
|
||||||
|
|
|
@ -413,6 +413,7 @@ def add_bot_backend(
|
||||||
api_key = get_api_key(bot_profile)
|
api_key = get_api_key(bot_profile)
|
||||||
|
|
||||||
json_result = dict(
|
json_result = dict(
|
||||||
|
user_id=bot_profile.id,
|
||||||
api_key=api_key,
|
api_key=api_key,
|
||||||
avatar_url=avatar_url(bot_profile),
|
avatar_url=avatar_url(bot_profile),
|
||||||
default_sending_stream=get_stream_name(bot_profile.default_sending_stream),
|
default_sending_stream=get_stream_name(bot_profile.default_sending_stream),
|
||||||
|
@ -521,8 +522,8 @@ def create_user_backend(
|
||||||
if not check_password_strength(password):
|
if not check_password_strength(password):
|
||||||
return json_error(PASSWORD_TOO_WEAK_ERROR)
|
return json_error(PASSWORD_TOO_WEAK_ERROR)
|
||||||
|
|
||||||
do_create_user(email, password, realm, full_name, acting_user=user_profile)
|
target_user = do_create_user(email, password, realm, full_name, acting_user=user_profile)
|
||||||
return json_success()
|
return json_success({'user_id': target_user.id})
|
||||||
|
|
||||||
def get_profile_backend(request: HttpRequest, user_profile: UserProfile) -> HttpResponse:
|
def get_profile_backend(request: HttpRequest, user_profile: UserProfile) -> HttpResponse:
|
||||||
raw_user_data = get_raw_user_data(user_profile.realm, user_profile,
|
raw_user_data = get_raw_user_data(user_profile.realm, user_profile,
|
||||||
|
|
Loading…
Reference in New Issue