Fix example Content-Type for /media/upload request

Fixes https://github.com/matrix-org/matrix-doc/issues/1770
pull/977/head
Travis Ralston 5 years ago
parent 699cafe670
commit 62890d21b2

@ -41,7 +41,7 @@ paths:
name: Content-Type name: Content-Type
type: string type: string
description: The content type of the file being uploaded description: The content type of the file being uploaded
x-example: "Content-Type: audio/mpeg" x-example: "Content-Type: application/pdf"
- in: query - in: query
type: string type: string
x-example: "War and Peace.pdf" x-example: "War and Peace.pdf"
@ -51,6 +51,7 @@ paths:
name: "<content>" name: "<content>"
description: The content to be uploaded. description: The content to be uploaded.
required: true required: true
x-example: "<bytes>" # so the spec shows "<bytes>" without quotes.
schema: schema:
type: string type: string
example: "<bytes>" example: "<bytes>"
@ -103,7 +104,7 @@ paths:
default: true default: true
description: | description: |
Indicates to the server that it should not attempt to fetch the media if it is deemed Indicates to the server that it should not attempt to fetch the media if it is deemed
remote. This is to prevent routing loops where the server contacts itself. Defaults to remote. This is to prevent routing loops where the server contacts itself. Defaults to
true if not provided. true if not provided.
responses: responses:
200: 200:
@ -158,7 +159,7 @@ paths:
default: true default: true
description: | description: |
Indicates to the server that it should not attempt to fetch the media if it is deemed Indicates to the server that it should not attempt to fetch the media if it is deemed
remote. This is to prevent routing loops where the server contacts itself. Defaults to remote. This is to prevent routing loops where the server contacts itself. Defaults to
true if not provided. true if not provided.
responses: responses:
200: 200:
@ -228,7 +229,7 @@ paths:
default: true default: true
description: | description: |
Indicates to the server that it should not attempt to fetch the media if it is deemed Indicates to the server that it should not attempt to fetch the media if it is deemed
remote. This is to prevent routing loops where the server contacts itself. Defaults to remote. This is to prevent routing loops where the server contacts itself. Defaults to
true if not provided. true if not provided.
responses: responses:
200: 200:
@ -330,7 +331,7 @@ paths:
m.upload.size: m.upload.size:
type: integer type: integer
format: int64 format: int64
description: |- description: |-
The maximum size an upload can be in bytes. The maximum size an upload can be in bytes.
Clients SHOULD use this as a guide when uploading content. Clients SHOULD use this as a guide when uploading content.
If not listed or null, the size limit should be treated as unknown. If not listed or null, the size limit should be treated as unknown.

@ -0,0 +1 @@
Fix example ``Content-Type`` for ``/media/upload`` request.

@ -521,6 +521,7 @@ class MatrixUnits(Units):
path_template = path path_template = path
example_query_params = [] example_query_params = []
example_body = "" example_body = ""
example_mime = "application/json"
for param in endpoint_swagger.get("parameters", []): for param in endpoint_swagger.get("parameters", []):
# even body params should have names, otherwise the active docs don't work. # even body params should have names, otherwise the active docs don't work.
param_name = param["name"] param_name = param["name"]
@ -533,6 +534,10 @@ class MatrixUnits(Units):
example_body = get_example_for_param(param) example_body = get_example_for_param(param)
continue continue
if param_loc == "header":
if param["name"] == "Content-Type" and param["x-example"]:
example_mime = param["x-example"]
# description # description
desc = param.get("description", "") desc = param.get("description", "")
if param.get("required"): if param.get("required"):
@ -610,8 +615,8 @@ class MatrixUnits(Units):
example_query_params) example_query_params)
if example_body: if example_body:
endpoint["example"][ endpoint["example"][
"req"] = "%s %s%s HTTP/1.1\nContent-Type: application/json\n\n%s" % ( "req"] = "%s %s%s HTTP/1.1\nContent-Type: %s\n\n%s" % (
method.upper(), path_template, query_string, example_body method.upper(), path_template, query_string, example_mime, example_body
) )
else: else:
endpoint["example"]["req"] = "%s %s%s HTTP/1.1\n\n" % ( endpoint["example"]["req"] = "%s %s%s HTTP/1.1\n\n" % (

Loading…
Cancel
Save