aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEgor Kislitsyn <egor@kislitsyn.com>2020-04-08 23:51:46 +0400
committerEgor Kislitsyn <egor@kislitsyn.com>2020-04-13 18:17:07 +0400
commit1b680a98ae15035215fa8489f825af72532340c4 (patch)
tree0299e949d8e9147e7db5a700641e043022b30038 /lib
parente105cc12b67e44eb4e19293b850731f300999a4f (diff)
downloadpleroma-1b680a98ae15035215fa8489f825af72532340c4.tar.gz
Add spec for AccountController.lists
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/api_spec/operations/account_operation.ex18
-rw-r--r--lib/pleroma/web/api_spec/schemas/list.ex25
-rw-r--r--lib/pleroma/web/api_spec/schemas/lists_response.ex16
-rw-r--r--lib/pleroma/web/mastodon_api/controllers/account_controller.ex3
4 files changed, 60 insertions, 2 deletions
diff --git a/lib/pleroma/web/api_spec/operations/account_operation.ex b/lib/pleroma/web/api_spec/operations/account_operation.ex
index 456d08a45..ad10f4ec9 100644
--- a/lib/pleroma/web/api_spec/operations/account_operation.ex
+++ b/lib/pleroma/web/api_spec/operations/account_operation.ex
@@ -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 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation 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
diff --git a/lib/pleroma/web/api_spec/schemas/list.ex b/lib/pleroma/web/api_spec/schemas/list.ex
new file mode 100644
index 000000000..30fa7db93
--- /dev/null
+++ b/lib/pleroma/web/api_spec/schemas/list.ex
@@ -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
diff --git a/lib/pleroma/web/api_spec/schemas/lists_response.ex b/lib/pleroma/web/api_spec/schemas/lists_response.ex
new file mode 100644
index 000000000..132454579
--- /dev/null
+++ b/lib/pleroma/web/api_spec/schemas/lists_response.ex
@@ -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
diff --git a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex
index e74180662..2c5cd8cde 100644
--- a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex
+++ b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex
@@ -91,7 +91,8 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do
:show,
:statuses,
:followers,
- :following
+ :following,
+ :lists
]
)