webhook fixes
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
This commit is contained in:
parent
9901e6367e
commit
8eca6ca87c
3 changed files with 18 additions and 20 deletions
|
|
@ -40,17 +40,18 @@ defmodule Pleroma.Web.AdminAPI.WebhookController do
|
||||||
end
|
end
|
||||||
|
|
||||||
def create(%{body_params: params} = conn, _) do
|
def create(%{body_params: params} = conn, _) do
|
||||||
with webhook <- Webhook.create(params) do
|
with {:ok, webhook} <- Webhook.create(params) do
|
||||||
render(conn, "show.json", webhook: webhook)
|
render(conn, "show.json", webhook: webhook)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def update(%{body_params: params} = conn, %{id: id}) do
|
def update(%{body_params: params} = conn, %{id: id}) do
|
||||||
with %Webhook{internal: false} = webhook <- Webhook.get(id),
|
with %Webhook{internal: false} = webhook <- Webhook.get(id),
|
||||||
webhook <- Webhook.update(webhook, params) do
|
{:ok, webhook} <- Webhook.update(webhook, params) do
|
||||||
render(conn, "show.json", webhook: webhook)
|
render(conn, "show.json", webhook: webhook)
|
||||||
else
|
else
|
||||||
%Webhook{internal: true} -> {:error, :forbidden}
|
%Webhook{internal: true} -> {:error, :forbidden}
|
||||||
|
nil -> {:error, :not_found}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -60,6 +61,7 @@ defmodule Pleroma.Web.AdminAPI.WebhookController do
|
||||||
render(conn, "show.json", webhook: webhook)
|
render(conn, "show.json", webhook: webhook)
|
||||||
else
|
else
|
||||||
%Webhook{internal: true} -> {:error, :forbidden}
|
%Webhook{internal: true} -> {:error, :forbidden}
|
||||||
|
nil -> {:error, :not_found}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ defmodule Pleroma.Web.MastodonAPI.Admin.AccountView do
|
||||||
role: role(user),
|
role: role(user),
|
||||||
confirmed: user.is_confirmed,
|
confirmed: user.is_confirmed,
|
||||||
sensitized: nil,
|
sensitized: nil,
|
||||||
suspened: nil,
|
suspended: nil,
|
||||||
silenced: nil,
|
silenced: nil,
|
||||||
disabled: !user.is_active,
|
disabled: !user.is_active,
|
||||||
approved: user.is_approved,
|
approved: user.is_approved,
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ defmodule Pleroma.Webhook do
|
||||||
def get_by_type(type) do
|
def get_by_type(type) do
|
||||||
__MODULE__
|
__MODULE__
|
||||||
|> where([w], ^type in w.events)
|
|> where([w], ^type in w.events)
|
||||||
|
|> where([w], w.enabled == true)
|
||||||
|> Repo.all()
|
|> Repo.all()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -48,21 +49,15 @@ defmodule Pleroma.Webhook do
|
||||||
end
|
end
|
||||||
|
|
||||||
def create(params) do
|
def create(params) do
|
||||||
{:ok, webhook} =
|
%__MODULE__{}
|
||||||
%__MODULE__{}
|
|> changeset(params)
|
||||||
|> changeset(params)
|
|> Repo.insert()
|
||||||
|> Repo.insert()
|
|
||||||
|
|
||||||
webhook
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def update(%__MODULE__{} = webhook, params) do
|
def update(%__MODULE__{} = webhook, params) do
|
||||||
{:ok, webhook} =
|
|
||||||
webhook
|
|
||||||
|> update_changeset(params)
|
|
||||||
|> Repo.update()
|
|
||||||
|
|
||||||
webhook
|
webhook
|
||||||
|
|> update_changeset(params)
|
||||||
|
|> Repo.update()
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete(webhook), do: webhook |> Repo.delete()
|
def delete(webhook), do: webhook |> Repo.delete()
|
||||||
|
|
@ -80,12 +75,13 @@ defmodule Pleroma.Webhook do
|
||||||
|> Repo.update()
|
|> Repo.update()
|
||||||
end
|
end
|
||||||
|
|
||||||
defp strip_events(params) do
|
defp strip_events(changeset) do
|
||||||
if Map.has_key?(params, :events) do
|
case get_change(changeset, :events) do
|
||||||
params
|
nil ->
|
||||||
|> Map.put(:events, Enum.filter(params[:events], &Enum.member?(@event_types, &1)))
|
changeset
|
||||||
else
|
|
||||||
params
|
events ->
|
||||||
|
put_change(changeset, :events, Enum.filter(events, &(&1 in @event_types)))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue