Current section

Files

Jump to
exq_ui lib exq_ui_web live retry_live show.ex
Raw

lib/exq_ui_web/live/retry_live/show.ex

defmodule ExqUIWeb.RetryLive.Show do
use ExqUIWeb, :live_view
alias ExqUI.Queue
@impl true
def mount(%{"score" => score, "jid" => jid}, _session, socket) do
socket =
assign(socket, :actions, [
%{name: "delete", label: "Delete"},
%{name: "retry_now", label: "Retry Now"}
])
{:ok, assign(socket, job_details(score, jid))}
end
@impl true
def handle_event("delete", %{"raw" => raw_job}, socket) do
:ok = Queue.remove_retry_jobs([raw_job])
{:noreply, push_redirect(socket, to: Routes.retry_index_path(socket))}
end
@impl true
def handle_event("retry_now", %{"raw" => raw_job}, socket) do
:ok = Queue.dequeue_retry_jobs([raw_job])
{:noreply, push_redirect(socket, to: Routes.retry_index_path(socket))}
end
defp job_details(score, jid) do
item = Queue.find_retry_job(score, jid)
%{item: item}
end
end