Add spec for AccountController.lists
This commit is contained in:
parent
e105cc12b6
commit
1b680a98ae
5 changed files with 61 additions and 2 deletions
|
@ -14,6 +14,7 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
|
|||
alias Pleroma.Web.ApiSpec.Schemas.AccountsResponse
|
||||
alias Pleroma.Web.ApiSpec.Schemas.AccountUpdateCredentialsRequest
|
||||
alias Pleroma.Web.ApiSpec.Schemas.BooleanLike
|
||||
alias Pleroma.Web.ApiSpec.Schemas.ListsResponse
|
||||
alias Pleroma.Web.ApiSpec.Schemas.StatusesResponse
|
||||
alias Pleroma.Web.ApiSpec.Schemas.VisibilityScope
|
||||
|
||||
|
@ -191,7 +192,22 @@ def following_operation do
|
|||
}
|
||||
end
|
||||
|
||||
def lists_operation, do: :ok
|
||||
def lists_operation do
|
||||
%Operation{
|
||||
tags: ["accounts"],
|
||||
summary: "Lists containing this account",
|
||||
operationId: "AccountController.lists",
|
||||
security: [%{"oAuth" => ["read:lists"]}],
|
||||
description: "User lists that you have added this account to.",
|
||||
parameters: [
|
||||
%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}
|
||||
],
|
||||
responses: %{
|
||||
200 => Operation.response("Lists", "application/json", ListsResponse)
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
def follow_operation, do: :ok
|
||||
def unfollow_operation, do: :ok
|
||||
def mute_operation, do: :ok
|
||||
|
|
25
lib/pleroma/web/api_spec/schemas/list.ex
Normal file
25
lib/pleroma/web/api_spec/schemas/list.ex
Normal file
|
@ -0,0 +1,25 @@
|
|||
# Pleroma: A lightweight social networking server
|
||||
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
defmodule Pleroma.Web.ApiSpec.Schemas.List do
|
||||
alias OpenApiSpex.Schema
|
||||
|
||||
require OpenApiSpex
|
||||
|
||||
OpenApiSpex.schema(%{
|
||||
title: "List",
|
||||
description: "Response schema for a list",
|
||||
type: :object,
|
||||
properties: %{
|
||||
id: %Schema{type: :string},
|
||||
title: %Schema{type: :string}
|
||||
},
|
||||
example: %{
|
||||
"JSON" => %{
|
||||
"id" => "123",
|
||||
"title" => "my list"
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
16
lib/pleroma/web/api_spec/schemas/lists_response.ex
Normal file
16
lib/pleroma/web/api_spec/schemas/lists_response.ex
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Pleroma: A lightweight social networking server
|
||||
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
defmodule Pleroma.Web.ApiSpec.Schemas.ListsResponse do
|
||||
alias Pleroma.Web.ApiSpec.Schemas.List
|
||||
|
||||
require OpenApiSpex
|
||||
|
||||
OpenApiSpex.schema(%{
|
||||
title: "ListsResponse",
|
||||
description: "Response schema for lists",
|
||||
type: :array,
|
||||
items: List
|
||||
})
|
||||
end
|
|
@ -91,7 +91,8 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do
|
|||
:show,
|
||||
:statuses,
|
||||
:followers,
|
||||
:following
|
||||
:following,
|
||||
:lists
|
||||
]
|
||||
)
|
||||
|
||||
|
|
|
@ -1051,6 +1051,7 @@ test "returns lists to which the account belongs" do
|
|||
|> json_response(200)
|
||||
|
||||
assert res == [%{"id" => to_string(list.id), "title" => "Test List"}]
|
||||
assert_schema(res, "ListsResponse", ApiSpec.spec())
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue