X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Fpush%2Fpush.ex;h=b80a6438d9e0410e37162f9e411c16cd01e80460;hb=77b1ea68a7700ac4a78c7f2e0ea9f118441d23da;hp=5259e8e33083c248f38621fcfdc693e63dcb2fc9;hpb=4e72762322a5616ce426df62888ee3bc7af19dc8;p=akkoma diff --git a/lib/pleroma/web/push/push.ex b/lib/pleroma/web/push/push.ex index 5259e8e33..b80a6438d 100644 --- a/lib/pleroma/web/push/push.ex +++ b/lib/pleroma/web/push/push.ex @@ -1,20 +1,22 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Push do - use GenServer - - alias Pleroma.Web.Push.Impl + alias Pleroma.Workers.WebPusherWorker require Logger - ############## - # Client API # - ############## + def init do + unless enabled() do + Logger.warn(""" + VAPID key pair is not found. If you wish to enabled web push, please run + + mix web_push.gen.keypair - def start_link do - GenServer.start_link(__MODULE__, :ok, name: __MODULE__) + and add the resulting output to your configuration file. + """) + end end def vapid_config do @@ -29,36 +31,7 @@ defmodule Pleroma.Web.Push do end end - def send(notification), - do: GenServer.cast(__MODULE__, {:send, notification}) - - #################### - # Server Callbacks # - #################### - - @impl true - def init(:ok) do - if enabled() do - {:ok, nil} - else - Logger.warn(""" - VAPID key pair is not found. If you wish to enabled web push, please run - - mix web_push.gen.keypair - - and add the resulting output to your configuration file. - """) - - :ignore - end - end - - @impl true - def handle_cast({:send, notification}, state) do - if enabled() do - Impl.perform_send(notification) - end - - {:noreply, state} + def send(notification) do + WebPusherWorker.enqueue("web_push", %{"notification_id" => notification.id}) end end