forked from AkkomaGang/akkoma
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.AccountsResponse
|
||||||
alias Pleroma.Web.ApiSpec.Schemas.AccountUpdateCredentialsRequest
|
alias Pleroma.Web.ApiSpec.Schemas.AccountUpdateCredentialsRequest
|
||||||
alias Pleroma.Web.ApiSpec.Schemas.BooleanLike
|
alias Pleroma.Web.ApiSpec.Schemas.BooleanLike
|
||||||
|
alias Pleroma.Web.ApiSpec.Schemas.ListsResponse
|
||||||
alias Pleroma.Web.ApiSpec.Schemas.StatusesResponse
|
alias Pleroma.Web.ApiSpec.Schemas.StatusesResponse
|
||||||
alias Pleroma.Web.ApiSpec.Schemas.VisibilityScope
|
alias Pleroma.Web.ApiSpec.Schemas.VisibilityScope
|
||||||
|
|
||||||
|
@ -191,7 +192,22 @@ def following_operation do
|
||||||
}
|
}
|
||||||
end
|
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 follow_operation, do: :ok
|
||||||
def unfollow_operation, do: :ok
|
def unfollow_operation, do: :ok
|
||||||
def mute_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,
|
:show,
|
||||||
:statuses,
|
:statuses,
|
||||||
:followers,
|
:followers,
|
||||||
:following
|
:following,
|
||||||
|
:lists
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1051,6 +1051,7 @@ test "returns lists to which the account belongs" do
|
||||||
|> json_response(200)
|
|> json_response(200)
|
||||||
|
|
||||||
assert res == [%{"id" => to_string(list.id), "title" => "Test List"}]
|
assert res == [%{"id" => to_string(list.id), "title" => "Test List"}]
|
||||||
|
assert_schema(res, "ListsResponse", ApiSpec.spec())
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue