Fix terrain enqueue: check actual data not just status flag
This commit is contained in:
parent
bdc4d08111
commit
9fe53b4e7b
1 changed files with 13 additions and 12 deletions
|
|
@ -278,25 +278,26 @@ defmodule MicrowavepropWeb.ContactLive.Show do
|
|||
end
|
||||
end
|
||||
|
||||
defp maybe_enqueue_terrain(_terrain, %{terrain_status: :complete} = contact), do: contact
|
||||
|
||||
defp maybe_enqueue_terrain(terrain, contact) when not is_nil(terrain) do
|
||||
Radio.set_enrichment_status!([contact.id], :terrain_status, :complete)
|
||||
if contact.terrain_status != :complete do
|
||||
Radio.set_enrichment_status!([contact.id], :terrain_status, :complete)
|
||||
end
|
||||
|
||||
%{contact | terrain_status: :complete}
|
||||
end
|
||||
|
||||
defp maybe_enqueue_terrain(nil, contact) do
|
||||
if contact.pos1 && contact.pos2 && contact.terrain_status in [:pending, :failed, :queued] do
|
||||
Oban.insert(TerrainProfileWorker.new(%{"contact_id" => contact.id}))
|
||||
Radio.set_enrichment_status!([contact.id], :terrain_status, :queued)
|
||||
%{contact | terrain_status: :queued}
|
||||
else
|
||||
if is_nil(contact.pos1) or is_nil(contact.pos2) do
|
||||
Radio.set_enrichment_status!([contact.id], :terrain_status, :unavailable)
|
||||
cond do
|
||||
contact.pos1 && contact.pos2 && contact.terrain_status not in [:queued, :unavailable] ->
|
||||
Oban.insert(TerrainProfileWorker.new(%{"contact_id" => contact.id}))
|
||||
Radio.set_enrichment_status!([contact.id], :terrain_status, :queued)
|
||||
%{contact | terrain_status: :queued}
|
||||
|
||||
is_nil(contact.pos1) or is_nil(contact.pos2) ->
|
||||
%{contact | terrain_status: :unavailable}
|
||||
else
|
||||
|
||||
true ->
|
||||
contact
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue