|
|
@@ -16,14 +16,8 @@ defmodule VaccinsWeb.IndexLive do
|
|
|
end
|
|
|
|
|
|
@impl true
|
|
|
- def handle_event(
|
|
|
- "trigger_query",
|
|
|
- %{"id" => query_id},
|
|
|
- socket = %{assigns: %{locations: valid, pending: pending}}
|
|
|
- ) do
|
|
|
- query = valid |> Enum.find(&(&1.id == query_id |> String.to_atom()))
|
|
|
- ref = Search.async_trigger_query(query)
|
|
|
- {:noreply, socket |> assign(pending: pending |> Map.put(ref, query_id))}
|
|
|
+ def handle_info({:query_sent, id, ref}, socket = %{assigns: %{pending: pending}}) do
|
|
|
+ {:noreply, socket |> assign(pending: pending |> Map.put(ref, id))}
|
|
|
end
|
|
|
|
|
|
@impl true
|
|
|
@@ -31,23 +25,8 @@ defmodule VaccinsWeb.IndexLive do
|
|
|
{:query_result, ref, res},
|
|
|
socket = %{assigns: %{locations: valid, pending: pending}}
|
|
|
) do
|
|
|
- query = pending |> Map.get(ref) |> IO.inspect()
|
|
|
- res |> IO.inspect()
|
|
|
+ id = pending |> Map.get(ref)
|
|
|
+ send_update(VaccinsWeb.LocationComponent, id: id, availabilities: res)
|
|
|
{:noreply, socket |> assign(pending: pending |> Map.delete(ref))}
|
|
|
end
|
|
|
-
|
|
|
- defp render_query(q) do
|
|
|
- ~E"""
|
|
|
- <dl class="show-metadata">
|
|
|
- <dt>id</dt>
|
|
|
- <dd><%= q.id %></dd>
|
|
|
- <dt>booking page</dt>
|
|
|
- <dd><%= link q.booking_page, to: q.booking_page %></dd>
|
|
|
- <dt>Availabilities</dt>
|
|
|
- <dd></dd>
|
|
|
- <dt>test availability</dt>
|
|
|
- <dd><button phx-click="trigger_query" phx-value-id="<%= q.id %>">Trigger</button></dd>
|
|
|
- </dl>
|
|
|
- """
|
|
|
- end
|
|
|
end
|