OpenAPI: Add admin:
scope prefix to admin operations
Also splits "Emoji packs" to two categories: "Emoji pack administration" and "Emoji packs"
This commit is contained in:
parent
6d66fadea7
commit
95a22c1cc2
|
@ -85,7 +85,7 @@ def spec(opts \\ []) do
|
|||
"name" => "Administration",
|
||||
"tags" => [
|
||||
"Chat administration",
|
||||
"Emoji packs",
|
||||
"Emoji pack administration",
|
||||
"Frontend managment",
|
||||
"Instance configuration",
|
||||
"Instance documents",
|
||||
|
@ -127,7 +127,7 @@ def spec(opts \\ []) do
|
|||
"Status actions"
|
||||
]
|
||||
},
|
||||
%{"name" => "Miscellaneous", "tags" => ["Reports", "Suggestions"]}
|
||||
%{"name" => "Miscellaneous", "tags" => ["Emoji packs", "Reports", "Suggestions"]}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ def delete_message_operation do
|
|||
},
|
||||
security: [
|
||||
%{
|
||||
"oAuth" => ["write:chats"]
|
||||
"oAuth" => ["admin:write:chats"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ def messages_operation do
|
|||
},
|
||||
security: [
|
||||
%{
|
||||
"oAuth" => ["read:chats"]
|
||||
"oAuth" => ["admin:read:chats"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ def show_operation do
|
|||
},
|
||||
security: [
|
||||
%{
|
||||
"oAuth" => ["read"]
|
||||
"oAuth" => ["admin:read"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ def show_operation do
|
|||
)
|
||||
| admin_api_params()
|
||||
],
|
||||
security: [%{"oAuth" => ["read"]}],
|
||||
security: [%{"oAuth" => ["admin:read"]}],
|
||||
responses: %{
|
||||
200 => Operation.response("Config", "application/json", config_response()),
|
||||
400 => Operation.response("Bad Request", "application/json", ApiError)
|
||||
|
@ -41,7 +41,7 @@ def update_operation do
|
|||
tags: ["Instance configuration"],
|
||||
summary: "Update instance configuration",
|
||||
operationId: "AdminAPI.ConfigController.update",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
parameters: admin_api_params(),
|
||||
requestBody:
|
||||
request_body("Parameters", %Schema{
|
||||
|
@ -74,7 +74,7 @@ def descriptions_operation do
|
|||
tags: ["Instance configuration"],
|
||||
summary: "Retrieve config description",
|
||||
operationId: "AdminAPI.ConfigController.descriptions",
|
||||
security: [%{"oAuth" => ["read"]}],
|
||||
security: [%{"oAuth" => ["admin:read"]}],
|
||||
parameters: admin_api_params(),
|
||||
responses: %{
|
||||
200 =>
|
||||
|
|
|
@ -19,7 +19,7 @@ def index_operation do
|
|||
tags: ["Frontend managment"],
|
||||
summary: "Retrieve a list of available frontends",
|
||||
operationId: "AdminAPI.FrontendController.index",
|
||||
security: [%{"oAuth" => ["read"]}],
|
||||
security: [%{"oAuth" => ["admin:read"]}],
|
||||
responses: %{
|
||||
200 => Operation.response("Response", "application/json", list_of_frontends()),
|
||||
403 => Operation.response("Forbidden", "application/json", ApiError)
|
||||
|
@ -32,7 +32,7 @@ def install_operation do
|
|||
tags: ["Frontend managment"],
|
||||
summary: "Install a frontend",
|
||||
operationId: "AdminAPI.FrontendController.install",
|
||||
security: [%{"oAuth" => ["read"]}],
|
||||
security: [%{"oAuth" => ["admin:read"]}],
|
||||
requestBody: request_body("Parameters", install_request(), required: true),
|
||||
responses: %{
|
||||
200 => Operation.response("Response", "application/json", list_of_frontends()),
|
||||
|
|
|
@ -18,7 +18,7 @@ def show_operation do
|
|||
tags: ["Instance documents"],
|
||||
summary: "Retrieve an instance document",
|
||||
operationId: "AdminAPI.InstanceDocumentController.show",
|
||||
security: [%{"oAuth" => ["read"]}],
|
||||
security: [%{"oAuth" => ["admin:read"]}],
|
||||
parameters: [
|
||||
Operation.parameter(:name, :path, %Schema{type: :string}, "The document name",
|
||||
required: true
|
||||
|
@ -39,7 +39,7 @@ def update_operation do
|
|||
tags: ["Instance documents"],
|
||||
summary: "Update an instance document",
|
||||
operationId: "AdminAPI.InstanceDocumentController.update",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
requestBody: Helpers.request_body("Parameters", update_request()),
|
||||
parameters: [
|
||||
Operation.parameter(:name, :path, %Schema{type: :string}, "The document name",
|
||||
|
@ -77,7 +77,7 @@ def delete_operation do
|
|||
tags: ["Instance documents"],
|
||||
summary: "Delete an instance document",
|
||||
operationId: "AdminAPI.InstanceDocumentController.delete",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
parameters: [
|
||||
Operation.parameter(:name, :path, %Schema{type: :string}, "The document name",
|
||||
required: true
|
||||
|
|
|
@ -19,7 +19,7 @@ def index_operation do
|
|||
tags: ["Invites"],
|
||||
summary: "Get a list of generated invites",
|
||||
operationId: "AdminAPI.InviteController.index",
|
||||
security: [%{"oAuth" => ["read:invites"]}],
|
||||
security: [%{"oAuth" => ["admin:read:invites"]}],
|
||||
parameters: admin_api_params(),
|
||||
responses: %{
|
||||
200 =>
|
||||
|
@ -51,7 +51,7 @@ def create_operation do
|
|||
tags: ["Invites"],
|
||||
summary: "Create an account registration invite token",
|
||||
operationId: "AdminAPI.InviteController.create",
|
||||
security: [%{"oAuth" => ["write:invites"]}],
|
||||
security: [%{"oAuth" => ["admin:write:invites"]}],
|
||||
parameters: admin_api_params(),
|
||||
requestBody:
|
||||
request_body("Parameters", %Schema{
|
||||
|
@ -72,7 +72,7 @@ def revoke_operation do
|
|||
tags: ["Invites"],
|
||||
summary: "Revoke invite by token",
|
||||
operationId: "AdminAPI.InviteController.revoke",
|
||||
security: [%{"oAuth" => ["write:invites"]}],
|
||||
security: [%{"oAuth" => ["admin:write:invites"]}],
|
||||
parameters: admin_api_params(),
|
||||
requestBody:
|
||||
request_body(
|
||||
|
@ -99,7 +99,7 @@ def email_operation do
|
|||
tags: ["Invites"],
|
||||
summary: "Sends registration invite via email",
|
||||
operationId: "AdminAPI.InviteController.email",
|
||||
security: [%{"oAuth" => ["write:invites"]}],
|
||||
security: [%{"oAuth" => ["admin:write:invites"]}],
|
||||
parameters: admin_api_params(),
|
||||
requestBody:
|
||||
request_body(
|
||||
|
|
|
@ -19,7 +19,7 @@ def index_operation do
|
|||
tags: ["MediaProxy cache"],
|
||||
summary: "Retrieve a list of banned MediaProxy URLs",
|
||||
operationId: "AdminAPI.MediaProxyCacheController.index",
|
||||
security: [%{"oAuth" => ["read:media_proxy_caches"]}],
|
||||
security: [%{"oAuth" => ["admin:read:media_proxy_caches"]}],
|
||||
parameters: [
|
||||
Operation.parameter(
|
||||
:query,
|
||||
|
@ -71,7 +71,7 @@ def delete_operation do
|
|||
tags: ["MediaProxy cache"],
|
||||
summary: "Remove a banned MediaProxy URL",
|
||||
operationId: "AdminAPI.MediaProxyCacheController.delete",
|
||||
security: [%{"oAuth" => ["write:media_proxy_caches"]}],
|
||||
security: [%{"oAuth" => ["admin:write:media_proxy_caches"]}],
|
||||
parameters: admin_api_params(),
|
||||
requestBody:
|
||||
request_body(
|
||||
|
@ -97,7 +97,7 @@ def purge_operation do
|
|||
tags: ["MediaProxy cache"],
|
||||
summary: "Purge a URL from MediaProxy cache and optionally ban it",
|
||||
operationId: "AdminAPI.MediaProxyCacheController.purge",
|
||||
security: [%{"oAuth" => ["write:media_proxy_caches"]}],
|
||||
security: [%{"oAuth" => ["admin:write:media_proxy_caches"]}],
|
||||
parameters: admin_api_params(),
|
||||
requestBody:
|
||||
request_body(
|
||||
|
|
|
@ -19,7 +19,7 @@ def index_operation do
|
|||
summary: "Retrieve a list of OAuth applications",
|
||||
tags: ["OAuth application managment"],
|
||||
operationId: "AdminAPI.OAuthAppController.index",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
parameters: [
|
||||
Operation.parameter(:name, :query, %Schema{type: :string}, "App name"),
|
||||
Operation.parameter(:client_id, :query, %Schema{type: :string}, "Client ID"),
|
||||
|
@ -74,7 +74,7 @@ def create_operation do
|
|||
operationId: "AdminAPI.OAuthAppController.create",
|
||||
requestBody: request_body("Parameters", create_request()),
|
||||
parameters: admin_api_params(),
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
responses: %{
|
||||
200 => Operation.response("App", "application/json", oauth_app()),
|
||||
400 => Operation.response("Bad Request", "application/json", ApiError)
|
||||
|
@ -88,7 +88,7 @@ def update_operation do
|
|||
summary: "Update OAuth application",
|
||||
operationId: "AdminAPI.OAuthAppController.update",
|
||||
parameters: [id_param() | admin_api_params()],
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
requestBody: request_body("Parameters", update_request()),
|
||||
responses: %{
|
||||
200 => Operation.response("App", "application/json", oauth_app()),
|
||||
|
@ -106,7 +106,7 @@ def delete_operation do
|
|||
summary: "Delete OAuth application",
|
||||
operationId: "AdminAPI.OAuthAppController.delete",
|
||||
parameters: [id_param() | admin_api_params()],
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
responses: %{
|
||||
204 => no_content_response(),
|
||||
400 => no_content_response()
|
||||
|
|
|
@ -18,7 +18,7 @@ def index_operation do
|
|||
tags: ["Relays"],
|
||||
summary: "Retrieve a list of relays",
|
||||
operationId: "AdminAPI.RelayController.index",
|
||||
security: [%{"oAuth" => ["read"]}],
|
||||
security: [%{"oAuth" => ["admin:read"]}],
|
||||
parameters: admin_api_params(),
|
||||
responses: %{
|
||||
200 =>
|
||||
|
@ -40,7 +40,7 @@ def follow_operation do
|
|||
tags: ["Relays"],
|
||||
summary: "Follow a relay",
|
||||
operationId: "AdminAPI.RelayController.follow",
|
||||
security: [%{"oAuth" => ["write:follows"]}],
|
||||
security: [%{"oAuth" => ["admin:write:follows"]}],
|
||||
parameters: admin_api_params(),
|
||||
requestBody: request_body("Parameters", relay_url()),
|
||||
responses: %{
|
||||
|
@ -54,7 +54,7 @@ def unfollow_operation do
|
|||
tags: ["Relays"],
|
||||
summary: "Unfollow a relay",
|
||||
operationId: "AdminAPI.RelayController.unfollow",
|
||||
security: [%{"oAuth" => ["write:follows"]}],
|
||||
security: [%{"oAuth" => ["admin:write:follows"]}],
|
||||
parameters: admin_api_params(),
|
||||
requestBody: request_body("Parameters", relay_unfollow()),
|
||||
responses: %{
|
||||
|
|
|
@ -22,7 +22,7 @@ def index_operation do
|
|||
tags: ["Report managment"],
|
||||
summary: "Retrieve a list of reports",
|
||||
operationId: "AdminAPI.ReportController.index",
|
||||
security: [%{"oAuth" => ["read:reports"]}],
|
||||
security: [%{"oAuth" => ["admin:read:reports"]}],
|
||||
parameters: [
|
||||
Operation.parameter(
|
||||
:state,
|
||||
|
@ -73,7 +73,7 @@ def show_operation do
|
|||
summary: "Retrieve a report",
|
||||
operationId: "AdminAPI.ReportController.show",
|
||||
parameters: [id_param() | admin_api_params()],
|
||||
security: [%{"oAuth" => ["read:reports"]}],
|
||||
security: [%{"oAuth" => ["admin:read:reports"]}],
|
||||
responses: %{
|
||||
200 => Operation.response("Report", "application/json", report()),
|
||||
404 => Operation.response("Not Found", "application/json", ApiError)
|
||||
|
@ -86,7 +86,7 @@ def update_operation do
|
|||
tags: ["Report managment"],
|
||||
summary: "Change state of specified reports",
|
||||
operationId: "AdminAPI.ReportController.update",
|
||||
security: [%{"oAuth" => ["write:reports"]}],
|
||||
security: [%{"oAuth" => ["admin:write:reports"]}],
|
||||
parameters: admin_api_params(),
|
||||
requestBody: request_body("Parameters", update_request(), required: true),
|
||||
responses: %{
|
||||
|
@ -110,7 +110,7 @@ def notes_create_operation do
|
|||
content: %Schema{type: :string, description: "The message"}
|
||||
}
|
||||
}),
|
||||
security: [%{"oAuth" => ["write:reports"]}],
|
||||
security: [%{"oAuth" => ["admin:write:reports"]}],
|
||||
responses: %{
|
||||
204 => no_content_response(),
|
||||
404 => Operation.response("Not Found", "application/json", ApiError)
|
||||
|
@ -128,7 +128,7 @@ def notes_delete_operation do
|
|||
Operation.parameter(:id, :path, :string, "Note ID")
|
||||
| admin_api_params()
|
||||
],
|
||||
security: [%{"oAuth" => ["write:reports"]}],
|
||||
security: [%{"oAuth" => ["admin:write:reports"]}],
|
||||
responses: %{
|
||||
204 => no_content_response(),
|
||||
404 => Operation.response("Not Found", "application/json", ApiError)
|
||||
|
|
|
@ -24,7 +24,7 @@ def index_operation do
|
|||
tags: ["Status administration"],
|
||||
operationId: "AdminAPI.StatusController.index",
|
||||
summary: "Get all statuses",
|
||||
security: [%{"oAuth" => ["read:statuses"]}],
|
||||
security: [%{"oAuth" => ["admin:read:statuses"]}],
|
||||
parameters: [
|
||||
Operation.parameter(
|
||||
:godmode,
|
||||
|
@ -74,7 +74,7 @@ def show_operation do
|
|||
summary: "Get status",
|
||||
operationId: "AdminAPI.StatusController.show",
|
||||
parameters: [id_param() | admin_api_params()],
|
||||
security: [%{"oAuth" => ["read:statuses"]}],
|
||||
security: [%{"oAuth" => ["admin:read:statuses"]}],
|
||||
responses: %{
|
||||
200 => Operation.response("Status", "application/json", status()),
|
||||
404 => Operation.response("Not Found", "application/json", ApiError)
|
||||
|
@ -88,7 +88,7 @@ def update_operation do
|
|||
summary: "Change the scope of a status",
|
||||
operationId: "AdminAPI.StatusController.update",
|
||||
parameters: [id_param() | admin_api_params()],
|
||||
security: [%{"oAuth" => ["write:statuses"]}],
|
||||
security: [%{"oAuth" => ["admin:write:statuses"]}],
|
||||
requestBody: request_body("Parameters", update_request(), required: true),
|
||||
responses: %{
|
||||
200 => Operation.response("Status", "application/json", Status),
|
||||
|
@ -103,7 +103,7 @@ def delete_operation do
|
|||
summary: "Delete status",
|
||||
operationId: "AdminAPI.StatusController.delete",
|
||||
parameters: [id_param() | admin_api_params()],
|
||||
security: [%{"oAuth" => ["write:statuses"]}],
|
||||
security: [%{"oAuth" => ["admin:write:statuses"]}],
|
||||
responses: %{
|
||||
200 => empty_object_response(),
|
||||
404 => Operation.response("Not Found", "application/json", ApiError)
|
||||
|
|
|
@ -16,10 +16,10 @@ def open_api_operation(action) do
|
|||
|
||||
def create_operation do
|
||||
%Operation{
|
||||
tags: ["Emoji packs"],
|
||||
tags: ["Emoji pack administration"],
|
||||
summary: "Add new file to the pack",
|
||||
operationId: "PleromaAPI.EmojiPackController.add_file",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
requestBody: request_body("Parameters", create_request(), required: true),
|
||||
parameters: [name_param()],
|
||||
responses: %{
|
||||
|
@ -62,10 +62,10 @@ defp create_request do
|
|||
|
||||
def update_operation do
|
||||
%Operation{
|
||||
tags: ["Emoji packs"],
|
||||
tags: ["Emoji pack administration"],
|
||||
summary: "Add new file to the pack",
|
||||
operationId: "PleromaAPI.EmojiPackController.update_file",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
requestBody: request_body("Parameters", update_request(), required: true),
|
||||
parameters: [name_param()],
|
||||
responses: %{
|
||||
|
@ -106,10 +106,10 @@ defp update_request do
|
|||
|
||||
def delete_operation do
|
||||
%Operation{
|
||||
tags: ["Emoji packs"],
|
||||
tags: ["Emoji pack administration"],
|
||||
summary: "Delete emoji file from pack",
|
||||
operationId: "PleromaAPI.EmojiPackController.delete_file",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
parameters: [
|
||||
name_param(),
|
||||
Operation.parameter(:shortcode, :query, :string, "File shortcode",
|
||||
|
|
|
@ -16,9 +16,9 @@ def open_api_operation(action) do
|
|||
|
||||
def remote_operation do
|
||||
%Operation{
|
||||
tags: ["Emoji packs"],
|
||||
tags: ["Emoji pack administration"],
|
||||
summary: "Make request to another instance for emoji packs list",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
parameters: [
|
||||
url_param(),
|
||||
Operation.parameter(
|
||||
|
@ -115,10 +115,10 @@ def archive_operation do
|
|||
|
||||
def download_operation do
|
||||
%Operation{
|
||||
tags: ["Emoji packs"],
|
||||
tags: ["Emoji pack administration"],
|
||||
summary: "Download pack from another instance",
|
||||
operationId: "PleromaAPI.EmojiPackController.download",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
requestBody: request_body("Parameters", download_request(), required: true),
|
||||
responses: %{
|
||||
200 => ok_response(),
|
||||
|
@ -145,10 +145,10 @@ defp download_request do
|
|||
|
||||
def create_operation do
|
||||
%Operation{
|
||||
tags: ["Emoji packs"],
|
||||
tags: ["Emoji pack administration"],
|
||||
summary: "Create an empty pack",
|
||||
operationId: "PleromaAPI.EmojiPackController.create",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
parameters: [name_param()],
|
||||
responses: %{
|
||||
200 => ok_response(),
|
||||
|
@ -161,10 +161,10 @@ def create_operation do
|
|||
|
||||
def delete_operation do
|
||||
%Operation{
|
||||
tags: ["Emoji packs"],
|
||||
tags: ["Emoji pack administration"],
|
||||
summary: "Delete a custom emoji pack",
|
||||
operationId: "PleromaAPI.EmojiPackController.delete",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
parameters: [name_param()],
|
||||
responses: %{
|
||||
200 => ok_response(),
|
||||
|
@ -177,10 +177,10 @@ def delete_operation do
|
|||
|
||||
def update_operation do
|
||||
%Operation{
|
||||
tags: ["Emoji packs"],
|
||||
tags: ["Emoji pack administration"],
|
||||
summary: "Updates (replaces) pack metadata",
|
||||
operationId: "PleromaAPI.EmojiPackController.update",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
requestBody: request_body("Parameters", update_request(), required: true),
|
||||
parameters: [name_param()],
|
||||
responses: %{
|
||||
|
@ -193,10 +193,10 @@ def update_operation do
|
|||
|
||||
def import_from_filesystem_operation do
|
||||
%Operation{
|
||||
tags: ["Emoji packs"],
|
||||
tags: ["Emoji pack administration"],
|
||||
summary: "Imports packs from filesystem",
|
||||
operationId: "PleromaAPI.EmojiPackController.import",
|
||||
security: [%{"oAuth" => ["write"]}],
|
||||
security: [%{"oAuth" => ["admin:write"]}],
|
||||
responses: %{
|
||||
200 =>
|
||||
Operation.response("Array of imported pack names", "application/json", %Schema{
|
||||
|
|
Loading…
Reference in a new issue