Add purchase function

This commit is contained in:
Claudio Ortolina
2024-10-21 19:24:05 +01:00
parent cd43d40e2b
commit 6a0112231b
2 changed files with 26 additions and 0 deletions
@@ -118,6 +118,22 @@ defmodule MusicLibraryWeb.WishlistLive.Index do
end
end
def handle_event("purchase", %{"id" => id}, socket) do
record = Records.get_record!(id)
current_time = DateTime.utc_now()
case Records.update_record(record, %{"purchased_at" => current_time}) do
{:ok, _} ->
{:noreply,
socket
|> put_flash(:info, gettext("Record updated successfully"))
|> push_patch(to: ~p"/wishlist")}
{:error, %Ecto.Changeset{} = changeset} ->
{:noreply, assign(socket, form: to_form(changeset))}
end
end
defp merge_query(record_list_params, query) do
Map.put(record_list_params, :query, query)
end
@@ -145,6 +145,16 @@
<%= gettext("Edit") %>
</.link>
<.link
class="block px-3 py-1 text-sm leading-6 text-gray-900 hover:bg-gray-50"
role="menuitem"
tabindex="-1"
id={"actions-#{record.id}-purchase"}
phx-click={JS.push("purchase", value: %{id: record.id})}
>
<%= gettext("Purchase") %>
</.link>
<.link
class="block px-3 py-1 text-sm leading-6 text-red-900 hover:bg-red-50"
role="menuitem"