OpenAPI: fix various errors pointed out by editor.swagger.io

This commit is contained in:
rinpatch 2020-09-19 00:50:00 +03:00
parent 6c052bd5b6
commit 51116b5392
7 changed files with 17 additions and 10 deletions

View File

@ -72,7 +72,11 @@ defmodule Pleroma.Web.ApiSpec.Helpers do
end end
def empty_array_response do def empty_array_response do
Operation.response("Empty array", "application/json", %Schema{type: :array, example: []}) Operation.response("Empty array", "application/json", %Schema{
type: :array,
items: %Schema{type: :object, example: %{}},
example: []
})
end end
def no_content_response do def no_content_response do

View File

@ -372,6 +372,10 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
tags: ["accounts"], tags: ["accounts"],
summary: "Identity proofs", summary: "Identity proofs",
operationId: "AccountController.identity_proofs", operationId: "AccountController.identity_proofs",
# Validators complains about unused path params otherwise
parameters: [
%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}
],
description: "Not implemented", description: "Not implemented",
responses: %{ responses: %{
200 => empty_array_response() 200 => empty_array_response()
@ -469,7 +473,6 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
identifier: %Schema{type: :string}, identifier: %Schema{type: :string},
message: %Schema{type: :string} message: %Schema{type: :string}
}, },
required: [],
# Note: example of successful registration with failed login response: # Note: example of successful registration with failed login response:
# example: %{ # example: %{
# "identifier" => "missing_confirmed_email", # "identifier" => "missing_confirmed_email",
@ -530,7 +533,7 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
nullable: true, nullable: true,
oneOf: [ oneOf: [
%Schema{type: :array, items: attribute_field()}, %Schema{type: :array, items: attribute_field()},
%Schema{type: :object, additionalProperties: %Schema{type: attribute_field()}} %Schema{type: :object, additionalProperties: attribute_field()}
] ]
}, },
# NOTE: `source` field is not supported # NOTE: `source` field is not supported

View File

@ -69,7 +69,7 @@ defmodule Pleroma.Web.ApiSpec.CustomEmojiOperation do
type: :object, type: :object,
properties: %{ properties: %{
category: %Schema{type: :string}, category: %Schema{type: :string},
tags: %Schema{type: :array} tags: %Schema{type: :array, items: %Schema{type: :string}}
} }
} }
], ],

View File

@ -23,7 +23,7 @@ defmodule Pleroma.Web.ApiSpec.EmojiReactionOperation do
parameters: [ parameters: [
Operation.parameter(:id, :path, FlakeID, "Status ID", required: true), Operation.parameter(:id, :path, FlakeID, "Status ID", required: true),
Operation.parameter(:emoji, :path, :string, "Filter by a single unicode emoji", Operation.parameter(:emoji, :path, :string, "Filter by a single unicode emoji",
required: false required: nil
) )
], ],
security: [%{"oAuth" => ["read:statuses"]}], security: [%{"oAuth" => ["read:statuses"]}],

View File

@ -187,8 +187,7 @@ defmodule Pleroma.Web.ApiSpec.ListOperation do
type: :object, type: :object,
properties: %{ properties: %{
account_ids: %Schema{type: :array, description: "Array of account IDs", items: FlakeID} account_ids: %Schema{type: :array, description: "Array of account IDs", items: FlakeID}
}, }
required: required && [:account_ids]
}, },
required: required required: required
) )

View File

@ -4,6 +4,7 @@
defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessage do defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessage do
alias OpenApiSpex.Schema alias OpenApiSpex.Schema
alias Pleroma.Web.ApiSpec.Schemas.Emoji
require OpenApiSpex require OpenApiSpex
@ -18,7 +19,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessage do
chat_id: %Schema{type: :string}, chat_id: %Schema{type: :string},
content: %Schema{type: :string, nullable: true}, content: %Schema{type: :string, nullable: true},
created_at: %Schema{type: :string, format: :"date-time"}, created_at: %Schema{type: :string, format: :"date-time"},
emojis: %Schema{type: :array}, emojis: %Schema{type: :array, items: Emoji},
attachment: %Schema{type: :object, nullable: true}, attachment: %Schema{type: :object, nullable: true},
card: %Schema{ card: %Schema{
type: :object, type: :object,

View File

@ -27,9 +27,9 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ScheduledStatus do
media_ids: %Schema{type: :array, nullable: true, items: %Schema{type: :string}}, media_ids: %Schema{type: :array, nullable: true, items: %Schema{type: :string}},
sensitive: %Schema{type: :boolean, nullable: true}, sensitive: %Schema{type: :boolean, nullable: true},
spoiler_text: %Schema{type: :string, nullable: true}, spoiler_text: %Schema{type: :string, nullable: true},
visibility: %Schema{type: VisibilityScope, nullable: true}, visibility: %Schema{allOf: [VisibilityScope], nullable: true},
scheduled_at: %Schema{type: :string, format: :"date-time", nullable: true}, scheduled_at: %Schema{type: :string, format: :"date-time", nullable: true},
poll: %Schema{type: Poll, nullable: true}, poll: %Schema{allOf: [Poll], nullable: true},
in_reply_to_id: %Schema{type: :string, nullable: true} in_reply_to_id: %Schema{type: :string, nullable: true}
} }
} }