diff options
author | Tusooa Zhu <tusooa@kazv.moe> | 2022-03-08 16:59:20 -0500 |
---|---|---|
committer | Tusooa Zhu <tusooa@kazv.moe> | 2022-03-08 16:59:20 -0500 |
commit | 2b39b36e490fc1222d8f3d737cb26e62af294e03 (patch) | |
tree | 458257e58a409c11ef615abf2d7f39277a4850bc /lib | |
parent | aa1fff279e98c6d16095538382413d3b870cee2b (diff) | |
download | pleroma-2b39b36e490fc1222d8f3d737cb26e62af294e03.tar.gz pleroma-2b39b36e490fc1222d8f3d737cb26e62af294e03.zip |
Implement POST /api/v1/announcements/:id/dismiss
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/api_spec/operations/announcement_operation.ex | 2 | ||||
-rw-r--r-- | lib/pleroma/web/mastodon_api/controllers/announcement_controller.ex | 18 |
2 files changed, 13 insertions, 7 deletions
diff --git a/lib/pleroma/web/api_spec/operations/announcement_operation.ex b/lib/pleroma/web/api_spec/operations/announcement_operation.ex index f99b0c263..c33b9e135 100644 --- a/lib/pleroma/web/api_spec/operations/announcement_operation.ex +++ b/lib/pleroma/web/api_spec/operations/announcement_operation.ex @@ -61,7 +61,7 @@ defmodule Pleroma.Web.ApiSpec.AnnouncementOperation do ) ], responses: %{ - 200 => Operation.response("Response", "application/json", Announcement), + 200 => Operation.response("Response", "application/json", %Schema{type: :object}), 403 => Operation.response("Forbidden", "application/json", ApiError), 404 => Operation.response("Not Found", "application/json", ApiError) } diff --git a/lib/pleroma/web/mastodon_api/controllers/announcement_controller.ex b/lib/pleroma/web/mastodon_api/controllers/announcement_controller.ex index 528d14adc..c51c38d5e 100644 --- a/lib/pleroma/web/mastodon_api/controllers/announcement_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/announcement_controller.ex @@ -5,10 +5,10 @@ defmodule Pleroma.Web.MastodonAPI.AnnouncementController do use Pleroma.Web, :controller - # import Pleroma.Web.ControllerHelper, - # only: [ - # json_response: 3 - # ] + import Pleroma.Web.ControllerHelper, + only: [ + json_response: 3 + ] alias Pleroma.Announcement alias Pleroma.Web.Plugs.OAuthScopesPlug @@ -50,8 +50,14 @@ defmodule Pleroma.Web.MastodonAPI.AnnouncementController do end @doc "POST /api/v1/announcements/:id/dismiss" - def mark_read(_conn, _params) do - {:error, :not_found} + def mark_read(%{assigns: %{user: user}} = conn, %{id: id} = _params) do + with announcement when not is_nil(announcement) <- Announcement.get_by_id(id), + {:ok, _} <- Announcement.mark_read_by(announcement, user) do + json_response(conn, :ok, %{}) + else + _ -> + {:error, :not_found} + end end @doc "POST /api/v1/announcements/:id" |