diff --git a/templates/zerver/api/arguments.json b/templates/zerver/api/arguments.json index 29c4e8468d..b3c492c5cf 100644 --- a/templates/zerver/api/arguments.json +++ b/templates/zerver/api/arguments.json @@ -1,12 +1,4 @@ { - "get-stream-id.md": [ - { - "argument": "stream", - "description": "The name of the stream to retrieve the ID for.", - "required": true, - "example": "Denmark" - } - ], "render-message.md": [ { "argument": "content", diff --git a/templates/zerver/api/fixtures.json b/templates/zerver/api/fixtures.json index a8a54dc252..b4f17796bb 100644 --- a/templates/zerver/api/fixtures.json +++ b/templates/zerver/api/fixtures.json @@ -115,11 +115,6 @@ "short_name": "iago", "user_id": 5 }, - "get-stream-id": { - "msg": "", - "result": "success", - "stream_id": 15 - }, "get-subscribed-streams": { "msg": "", "result": "success", @@ -207,11 +202,6 @@ "msg": "Invalid API key", "result": "error" }, - "invalid-stream-error": { - "code": "BAD_REQUEST", - "msg": "Invalid stream name 'nonexistent'", - "result": "error" - }, "missing-request-argument-error": { "code": "REQUEST_VARIABLE_MISSING", "msg": "Missing 'content' argument", diff --git a/templates/zerver/api/get-stream-id.md b/templates/zerver/api/get-stream-id.md index 6a94e35d27..69c0e50add 100644 --- a/templates/zerver/api/get-stream-id.md +++ b/templates/zerver/api/get-stream-id.md @@ -24,7 +24,7 @@ curl {{ api_url }}/v1/get_stream_id?stream=Denmark \
-{generate_code_example(python)|get-stream-id|example} +{generate_code_example(python)|/get_stream_id:get|example}
@@ -53,7 +53,7 @@ zulip(config).then((client) => { **Note**: The following arguments are all URL query parameters. -{generate_api_arguments_table|arguments.json|get-stream-id.md} +{generate_api_arguments_table|zulip.yaml|/get_stream_id:get} ## Response @@ -65,8 +65,8 @@ zulip(config).then((client) => { A typical successful JSON response may look like: -{generate_code_example|get-stream-id|fixture} +{generate_code_example|/get_stream_id:get|fixture(200)} An example JSON response for when the supplied stream does not exist: -{generate_code_example|invalid-stream-error|fixture} +{generate_code_example|/get_stream_id:get|fixture(400)} diff --git a/zerver/lib/api_test_helpers.py b/zerver/lib/api_test_helpers.py index 07637afa5b..b580c68ee2 100644 --- a/zerver/lib/api_test_helpers.py +++ b/zerver/lib/api_test_helpers.py @@ -188,9 +188,7 @@ def get_stream_id(client): result = client.get_stream_id(stream_name) # {code_example|end} - fixture = FIXTURES['get-stream-id'] - test_against_fixture(result, fixture, check_if_equal=['msg', 'result'], - check_if_exists=['stream_id']) + validate_against_openapi_schema(result, '/get_stream_id', 'get', '200') def get_streams(client): # type: (Client) -> None @@ -491,14 +489,13 @@ def test_invalid_stream_error(client): # type: (Client) -> None result = client.get_stream_id('nonexistent') - fixture = FIXTURES['invalid-stream-error'] - test_against_fixture(result, fixture) + validate_against_openapi_schema(result, '/get_stream_id', 'get', '400') TEST_FUNCTIONS = { 'render-message': render_message, '/messages:post': send_message, '/messages/{message_id}:patch': update_message, - 'get-stream-id': get_stream_id, + '/get_stream_id:get': get_stream_id, 'get-subscribed-streams': list_subscriptions, '/streams:get': get_streams, 'create-user': create_user, diff --git a/zerver/openapi/zulip.yaml b/zerver/openapi/zulip.yaml index da76d0049f..25fdb91d0d 100644 --- a/zerver/openapi/zulip.yaml +++ b/zerver/openapi/zulip.yaml @@ -24,6 +24,50 @@ servers: # Endpoint definitions ####################### paths: + /get_stream_id: + get: + description: Get the unique ID of a given stream. + parameters: + - name: stream + in: query + description: The name of the stream to retrieve the ID for. + schema: + type: string + example: Denmark + required: true + security: + - basicAuth: [] + responses: + '200': + description: Success + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/JsonSuccess' + - properties: + stream_id: + type: integer + description: The ID of the given stream. + - example: + { + "msg": "", + "result": "success", + "stream_id": 15 + } + '400': + description: Bad request + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/CodedError' + - example: + { + "code": "BAD_REQUEST", + "msg": "Invalid stream name 'nonexistent'", + "result": "error" + } /messages: post: description: Send a message.