summaryrefslogtreecommitdiff
path: root/lib/pleroma/workers/poll_expiration_notify.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/workers/poll_expiration_notify.ex')
-rw-r--r--lib/pleroma/workers/poll_expiration_notify.ex25
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