Pleroma.Web.MastodonAPI.NotificationController: fix dialyzer errors with replace_params: false
This commit is contained in:
parent
90c9f38f40
commit
0a6b2c9587
|
@ -13,7 +13,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationController do
|
||||||
|
|
||||||
@oauth_read_actions [:show, :index]
|
@oauth_read_actions [:show, :index]
|
||||||
|
|
||||||
plug(Pleroma.Web.ApiSpec.CastAndValidate)
|
plug(Pleroma.Web.ApiSpec.CastAndValidate, replace_params: false)
|
||||||
|
|
||||||
plug(
|
plug(
|
||||||
OAuthScopesPlug,
|
OAuthScopesPlug,
|
||||||
|
@ -24,24 +24,6 @@ defmodule Pleroma.Web.MastodonAPI.NotificationController do
|
||||||
|
|
||||||
defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.NotificationOperation
|
defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.NotificationOperation
|
||||||
|
|
||||||
# GET /api/v1/notifications
|
|
||||||
def index(conn, %{account_id: account_id} = params) do
|
|
||||||
case Pleroma.User.get_cached_by_id(account_id) do
|
|
||||||
%{ap_id: account_ap_id} ->
|
|
||||||
params =
|
|
||||||
params
|
|
||||||
|> Map.delete(:account_id)
|
|
||||||
|> Map.put(:account_ap_id, account_ap_id)
|
|
||||||
|
|
||||||
index(conn, params)
|
|
||||||
|
|
||||||
_ ->
|
|
||||||
conn
|
|
||||||
|> put_status(:not_found)
|
|
||||||
|> json(%{"error" => "Account is not found"})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
@default_notification_types ~w{
|
@default_notification_types ~w{
|
||||||
mention
|
mention
|
||||||
follow
|
follow
|
||||||
|
@ -53,7 +35,30 @@ def index(conn, %{account_id: account_id} = params) do
|
||||||
poll
|
poll
|
||||||
update
|
update
|
||||||
}
|
}
|
||||||
def index(%{assigns: %{user: user}} = conn, params) do
|
|
||||||
|
# GET /api/v1/notifications
|
||||||
|
def index(%{private: %{open_api_spex: %{params: %{account_id: account_id} = params}}} = conn, _) do
|
||||||
|
case Pleroma.User.get_cached_by_id(account_id) do
|
||||||
|
%{ap_id: account_ap_id} ->
|
||||||
|
params =
|
||||||
|
params
|
||||||
|
|> Map.delete(:account_id)
|
||||||
|
|> Map.put(:account_ap_id, account_ap_id)
|
||||||
|
|
||||||
|
do_get_notifications(conn, params)
|
||||||
|
|
||||||
|
_ ->
|
||||||
|
conn
|
||||||
|
|> put_status(:not_found)
|
||||||
|
|> json(%{"error" => "Account is not found"})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def index(%{private: %{open_api_spex: %{params: params}}} = conn, _) do
|
||||||
|
do_get_notifications(conn, params)
|
||||||
|
end
|
||||||
|
|
||||||
|
defp do_get_notifications(%{assigns: %{user: user}} = conn, params) do
|
||||||
params =
|
params =
|
||||||
Map.new(params, fn {k, v} -> {to_string(k), v} end)
|
Map.new(params, fn {k, v} -> {to_string(k), v} end)
|
||||||
|> Map.put_new("types", Map.get(params, :include_types, @default_notification_types))
|
|> Map.put_new("types", Map.get(params, :include_types, @default_notification_types))
|
||||||
|
@ -69,7 +74,7 @@ def index(%{assigns: %{user: user}} = conn, params) do
|
||||||
end
|
end
|
||||||
|
|
||||||
# GET /api/v1/notifications/:id
|
# GET /api/v1/notifications/:id
|
||||||
def show(%{assigns: %{user: user}} = conn, %{id: id}) do
|
def show(%{assigns: %{user: user}, private: %{open_api_spex: %{params: %{id: id}}}} = conn, _) do
|
||||||
with {:ok, notification} <- Notification.get(user, id) do
|
with {:ok, notification} <- Notification.get(user, id) do
|
||||||
render(conn, "show.json", notification: notification, for: user)
|
render(conn, "show.json", notification: notification, for: user)
|
||||||
else
|
else
|
||||||
|
@ -88,8 +93,20 @@ def clear(%{assigns: %{user: user}} = conn, _params) do
|
||||||
|
|
||||||
# POST /api/v1/notifications/:id/dismiss
|
# POST /api/v1/notifications/:id/dismiss
|
||||||
|
|
||||||
def dismiss(%{assigns: %{user: user}} = conn, %{id: id} = _params) do
|
def dismiss(%{private: %{open_api_spex: %{params: %{id: id}}}} = conn, _) do
|
||||||
with {:ok, _notif} <- Notification.dismiss(user, id) do
|
do_dismiss(conn, id)
|
||||||
|
end
|
||||||
|
|
||||||
|
# POST /api/v1/notifications/dismiss (deprecated)
|
||||||
|
def dismiss_via_body(
|
||||||
|
%{private: %{open_api_spex: %{body_params: %{id: id}}}} = conn,
|
||||||
|
_
|
||||||
|
) do
|
||||||
|
do_dismiss(conn, id)
|
||||||
|
end
|
||||||
|
|
||||||
|
defp do_dismiss(%{assigns: %{user: user}} = conn, notification_id) do
|
||||||
|
with {:ok, _notif} <- Notification.dismiss(user, notification_id) do
|
||||||
json(conn, %{})
|
json(conn, %{})
|
||||||
else
|
else
|
||||||
{:error, reason} ->
|
{:error, reason} ->
|
||||||
|
@ -99,13 +116,11 @@ def dismiss(%{assigns: %{user: user}} = conn, %{id: id} = _params) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# POST /api/v1/notifications/dismiss (deprecated)
|
|
||||||
def dismiss_via_body(%{body_params: params} = conn, _) do
|
|
||||||
dismiss(conn, params)
|
|
||||||
end
|
|
||||||
|
|
||||||
# DELETE /api/v1/notifications/destroy_multiple
|
# DELETE /api/v1/notifications/destroy_multiple
|
||||||
def destroy_multiple(%{assigns: %{user: user}} = conn, %{ids: ids} = _params) do
|
def destroy_multiple(
|
||||||
|
%{assigns: %{user: user}, private: %{open_api_spex: %{params: %{ids: ids}}}} = conn,
|
||||||
|
_
|
||||||
|
) do
|
||||||
Notification.destroy_multiple(user, ids)
|
Notification.destroy_multiple(user, ids)
|
||||||
json(conn, %{})
|
json(conn, %{})
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue