diff options
author | marcin mikołajczak <me@mkljczk.pl> | 2021-12-26 02:35:17 +0000 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2021-12-26 02:35:17 +0000 |
commit | de006443f0bc8cfb3ad28b29b2d8ea9581e760b6 (patch) | |
tree | f26e66d8a2c7baeb67803245c1eaa9fa0f9f9790 /lib/pleroma/web/api_spec | |
parent | 73609211a425922a5068d3912a36b82abe24e12c (diff) | |
download | pleroma-de006443f0bc8cfb3ad28b29b2d8ea9581e760b6.tar.gz |
MastoAPI: Profile directory
Diffstat (limited to 'lib/pleroma/web/api_spec')
-rw-r--r-- | lib/pleroma/web/api_spec/operations/directory_operation.ex | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/pleroma/web/api_spec/operations/directory_operation.ex b/lib/pleroma/web/api_spec/operations/directory_operation.ex new file mode 100644 index 000000000..9be965feb --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/directory_operation.ex @@ -0,0 +1,41 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.DirectoryOperation do + alias OpenApiSpex.Operation + alias Pleroma.Web.ApiSpec.AccountOperation + alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.BooleanLike + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + tags: ["Directory"], + summary: "Profile directory", + operationId: "DirectoryController.index", + parameters: + [ + Operation.parameter( + :order, + :query, + :string, + "Order by recent activity or account creation", + required: nil + ), + Operation.parameter(:local, :query, BooleanLike, "Include local users only") + ] ++ pagination_params(), + responses: %{ + 200 => + Operation.response("Accounts", "application/json", AccountOperation.array_of_accounts()), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end +end |