From a0d72eee5c0b51c4484b49a886c9b5edf45ad10f Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Wed, 6 May 2026 15:49:18 -0500 Subject: [PATCH] fix(coverage): queue compute job after creating a coverage create flow only inserted the row and left status as :draft, so the worker never ran. Chain queue_compute/1 after create_coverage/2 so the coverage immediately moves to :queued and the show page renders the compute progress. --- lib/towerops_web/live/coverage_live/form.ex | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/towerops_web/live/coverage_live/form.ex b/lib/towerops_web/live/coverage_live/form.ex index d02328f6..c5b33159 100644 --- a/lib/towerops_web/live/coverage_live/form.ex +++ b/lib/towerops_web/live/coverage_live/form.ex @@ -131,15 +131,18 @@ defmodule ToweropsWeb.CoverageLive.Form do end defp save(socket, :new, attrs) do - case Coverages.create_coverage(socket.assigns.organization.id, attrs) do - {:ok, coverage} -> - {:noreply, - socket - |> put_flash(:info, t("Coverage created")) - |> push_navigate(to: ~p"/coverage/#{coverage.id}")} - + with {:ok, coverage} <- Coverages.create_coverage(socket.assigns.organization.id, attrs), + {:ok, queued} <- Coverages.queue_compute(coverage) do + {:noreply, + socket + |> put_flash(:info, t("Coverage queued for compute")) + |> push_navigate(to: ~p"/coverage/#{queued.id}")} + else {:error, %Ecto.Changeset{} = changeset} -> {:noreply, assign_form(socket, changeset)} + + {:error, _other} -> + {:noreply, put_flash(socket, :error, t("Failed to queue coverage compute"))} end end