aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma
diff options
context:
space:
mode:
authorEgor Kislitsyn <egor@kislitsyn.com>2019-12-03 22:13:38 +0700
committerEgor Kislitsyn <egor@kislitsyn.com>2019-12-03 22:13:38 +0700
commit624e720aa45fd54575d17a2b5e77c67deef6eb86 (patch)
tree68783e20f8bc9cc16837a194de4f15d526a60d61 /lib/pleroma
parent7722e5a67a46304f3ae0e37f674a44ca9268be5e (diff)
downloadpleroma-624e720aa45fd54575d17a2b5e77c67deef6eb86.tar.gz
Add `with_move` query param to the notifications API
Diffstat (limited to 'lib/pleroma')
-rw-r--r--lib/pleroma/notification.ex9
-rw-r--r--lib/pleroma/web/mastodon_api/mastodon_api.ex3
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex
index f37e7ec67..6b6e1c2e1 100644
--- a/lib/pleroma/notification.ex
+++ b/lib/pleroma/notification.ex
@@ -57,6 +57,7 @@ defmodule Pleroma.Notification do
|> exclude_muted(user, opts)
|> exclude_blocked(user)
|> exclude_visibility(opts)
+ |> exclude_move(opts)
end
defp exclude_blocked(query, user) do
@@ -81,6 +82,14 @@ defmodule Pleroma.Notification do
|> where([n, a, o, tm], is_nil(tm.user_id))
end
+ defp exclude_move(query, %{with_move: true}) do
+ query
+ end
+
+ defp exclude_move(query, _opts) do
+ where(query, [n, a], fragment("?->>'type' != 'Move'", a.data))
+ end
+
@valid_visibilities ~w[direct unlisted public private]
defp exclude_visibility(query, %{exclude_visibilities: visibility})
diff --git a/lib/pleroma/web/mastodon_api/mastodon_api.ex b/lib/pleroma/web/mastodon_api/mastodon_api.ex
index d875a5788..3e7dc4617 100644
--- a/lib/pleroma/web/mastodon_api/mastodon_api.ex
+++ b/lib/pleroma/web/mastodon_api/mastodon_api.ex
@@ -73,7 +73,8 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPI do
exclude_types: {:array, :string},
exclude_visibilities: {:array, :string},
reblogs: :boolean,
- with_muted: :boolean
+ with_muted: :boolean,
+ with_move: :boolean
}
changeset = cast({%{}, param_types}, params, Map.keys(param_types))