forked from AkkomaGang/akkoma
9fcff7851f
Too many changes in OpenAPI spec to describe each one, but basically it is tag fixes, bringing consitency to operation summaries and fixing some incorrect information.
80 lines
2.3 KiB
Elixir
80 lines
2.3 KiB
Elixir
# 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.UserImportOperation do
|
|
alias OpenApiSpex.Operation
|
|
alias OpenApiSpex.Schema
|
|
alias Pleroma.Web.ApiSpec.Schemas.ApiError
|
|
|
|
import Pleroma.Web.ApiSpec.Helpers
|
|
|
|
@spec open_api_operation(atom) :: Operation.t()
|
|
def open_api_operation(action) do
|
|
operation = String.to_existing_atom("#{action}_operation")
|
|
apply(__MODULE__, operation, [])
|
|
end
|
|
|
|
def follow_operation do
|
|
%Operation{
|
|
tags: ["Data import"],
|
|
summary: "Import follows",
|
|
operationId: "UserImportController.follow",
|
|
requestBody: request_body("Parameters", import_request(), required: true),
|
|
responses: %{
|
|
200 => ok_response(),
|
|
500 => Operation.response("Error", "application/json", ApiError)
|
|
},
|
|
security: [%{"oAuth" => ["write:follow"]}]
|
|
}
|
|
end
|
|
|
|
def blocks_operation do
|
|
%Operation{
|
|
tags: ["Data import"],
|
|
summary: "Import blocks",
|
|
operationId: "UserImportController.blocks",
|
|
requestBody: request_body("Parameters", import_request(), required: true),
|
|
responses: %{
|
|
200 => ok_response(),
|
|
500 => Operation.response("Error", "application/json", ApiError)
|
|
},
|
|
security: [%{"oAuth" => ["write:blocks"]}]
|
|
}
|
|
end
|
|
|
|
def mutes_operation do
|
|
%Operation{
|
|
tags: ["Data import"],
|
|
summary: "Import mutes",
|
|
operationId: "UserImportController.mutes",
|
|
requestBody: request_body("Parameters", import_request(), required: true),
|
|
responses: %{
|
|
200 => ok_response(),
|
|
500 => Operation.response("Error", "application/json", ApiError)
|
|
},
|
|
security: [%{"oAuth" => ["write:mutes"]}]
|
|
}
|
|
end
|
|
|
|
defp import_request do
|
|
%Schema{
|
|
type: :object,
|
|
required: [:list],
|
|
properties: %{
|
|
list: %Schema{
|
|
description:
|
|
"STRING or FILE containing a whitespace-separated list of accounts to import.",
|
|
anyOf: [
|
|
%Schema{type: :string, format: :binary},
|
|
%Schema{type: :string}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
defp ok_response do
|
|
Operation.response("Ok", "application/json", %Schema{type: :string, example: "ok"})
|
|
end
|
|
end
|