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
|
||||
|
||||
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)
|
||||
end
|
||||
end
|
||||
|
||||
def update(%{body_params: params} = conn, %{id: id}) do
|
||||
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)
|
||||
else
|
||||
%Webhook{internal: true} -> {:error, :forbidden}
|
||||
nil -> {:error, :not_found}
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -60,6 +61,7 @@ defmodule Pleroma.Web.AdminAPI.WebhookController do
|
|||
render(conn, "show.json", webhook: webhook)
|
||||
else
|
||||
%Webhook{internal: true} -> {:error, :forbidden}
|
||||
nil -> {:error, :not_found}
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ defmodule Pleroma.Web.MastodonAPI.Admin.AccountView do
|
|||
role: role(user),
|
||||
confirmed: user.is_confirmed,
|
||||
sensitized: nil,
|
||||
suspened: nil,
|
||||
suspended: nil,
|
||||
silenced: nil,
|
||||
disabled: !user.is_active,
|
||||
approved: user.is_approved,
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ defmodule Pleroma.Webhook do
|
|||
def get_by_type(type) do
|
||||
__MODULE__
|
||||
|> where([w], ^type in w.events)
|
||||
|> where([w], w.enabled == true)
|
||||
|> Repo.all()
|
||||
end
|
||||
|
||||
|
|
@ -48,21 +49,15 @@ defmodule Pleroma.Webhook do
|
|||
end
|
||||
|
||||
def create(params) do
|
||||
{:ok, webhook} =
|
||||
%__MODULE__{}
|
||||
|> changeset(params)
|
||||
|> Repo.insert()
|
||||
|
||||
webhook
|
||||
%__MODULE__{}
|
||||
|> changeset(params)
|
||||
|> Repo.insert()
|
||||
end
|
||||
|
||||
def update(%__MODULE__{} = webhook, params) do
|
||||
{:ok, webhook} =
|
||||
webhook
|
||||
|> update_changeset(params)
|
||||
|> Repo.update()
|
||||
|
||||
webhook
|
||||
|> update_changeset(params)
|
||||
|> Repo.update()
|
||||
end
|
||||
|
||||
def delete(webhook), do: webhook |> Repo.delete()
|
||||
|
|
@ -80,12 +75,13 @@ defmodule Pleroma.Webhook do
|
|||
|> Repo.update()
|
||||
end
|
||||
|
||||
defp strip_events(params) do
|
||||
if Map.has_key?(params, :events) do
|
||||
params
|
||||
|> Map.put(:events, Enum.filter(params[:events], &Enum.member?(@event_types, &1)))
|
||||
else
|
||||
params
|
||||
defp strip_events(changeset) do
|
||||
case get_change(changeset, :events) do
|
||||
nil ->
|
||||
changeset
|
||||
|
||||
events ->
|
||||
put_change(changeset, :events, Enum.filter(events, &(&1 in @event_types)))
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue