summaryrefslogtreecommitdiff
path: root/lib/pleroma/web/api_spec/operations/admin
diff options
context:
space:
mode:
authorTusooa Zhu <tusooa@kazv.moe>2022-03-08 20:55:41 -0500
committerTusooa Zhu <tusooa@kazv.moe>2022-03-08 20:55:41 -0500
commit11a1996bf5f283099fd9ecbb5c64e051ec46a5df (patch)
treef197e0f2def0049f6546dd48915b29afc36761f2 /lib/pleroma/web/api_spec/operations/admin
parent881179ec725c3b71868fdcba983fdedd295e5125 (diff)
downloadpleroma-11a1996bf5f283099fd9ecbb5c64e051ec46a5df.tar.gz
pleroma-11a1996bf5f283099fd9ecbb5c64e051ec46a5df.zip
Implement update announcement admin api
Diffstat (limited to 'lib/pleroma/web/api_spec/operations/admin')
-rw-r--r--lib/pleroma/web/api_spec/operations/admin/announcement_operation.ex49
1 files changed, 43 insertions, 6 deletions
diff --git a/lib/pleroma/web/api_spec/operations/admin/announcement_operation.ex b/lib/pleroma/web/api_spec/operations/admin/announcement_operation.ex
index 8179a0e7b..cdf04d357 100644
--- a/lib/pleroma/web/api_spec/operations/admin/announcement_operation.ex
+++ b/lib/pleroma/web/api_spec/operations/admin/announcement_operation.ex
@@ -89,17 +89,54 @@ defmodule Pleroma.Web.ApiSpec.Admin.AnnouncementOperation do
}
end
+ def change_operation do
+ %Operation{
+ tags: ["Announcement managment"],
+ summary: "Change one announcement",
+ operationId: "AdminAPI.AnnouncementController.change",
+ security: [%{"oAuth" => ["admin:write"]}],
+ parameters: [
+ Operation.parameter(
+ :id,
+ :path,
+ :string,
+ "announcement id"
+ )
+ | admin_api_params()
+ ],
+ requestBody: request_body("Parameters", change_request(), required: true),
+ responses: %{
+ 200 => Operation.response("Response", "application/json", Announcement),
+ 400 => Operation.response("Bad Request", "application/json", ApiError),
+ 403 => Operation.response("Forbidden", "application/json", ApiError),
+ 404 => Operation.response("Not Found", "application/json", ApiError)
+ }
+ }
+ end
+
+ defp create_or_change_props do
+ %{
+ content: %Schema{type: :string},
+ starts_at: %Schema{type: :string, format: "date-time", nullable: true},
+ ends_at: %Schema{type: :string, format: "date-time", nullable: true},
+ all_day: %Schema{type: :boolean}
+ }
+ end
+
def create_request do
%Schema{
title: "AnnouncementCreateRequest",
type: :object,
required: [:content],
- properties: %{
- content: %Schema{type: :string},
- starts_at: %Schema{type: :string, format: "date-time"},
- ends_at: %Schema{type: :string, format: "date-time"},
- all_day: %Schema{type: :boolean}
- }
+ properties: create_or_change_props()
+ }
+ end
+
+ def change_request do
+ %Schema{
+ title: "AnnouncementChangeRequest",
+ type: :object,
+ properties: create_or_change_props()
}
end