diff options
Diffstat (limited to 'lib/pleroma/workers/poll_expiration_notify.ex')
-rw-r--r-- | lib/pleroma/workers/poll_expiration_notify.ex | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/pleroma/workers/poll_expiration_notify.ex b/lib/pleroma/workers/poll_expiration_notify.ex new file mode 100644 index 000000000..2adf6e940 --- /dev/null +++ b/lib/pleroma/workers/poll_expiration_notify.ex @@ -0,0 +1,25 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Workers.PollExpirationNotify do + @moduledoc false + + use Oban.Worker, queue: :poll_expiration_notify, max_attempts: 1 + + def enqueue(args) do + {scheduled_at, args} = Map.pop(args, :closed_at) + + args + |> __MODULE__.new(scheduled_at: scheduled_at) + |> Oban.insert() + end + + @impl true + def perform(%Oban.Job{args: %{"activity_id" => activity_id}}) do + Pleroma.Web.CommonAPI.close_poll(activity_id) + :ok + end + + def perform(_), do: :ok +end |