defmodule AthenaWeb.Admin.EventController do use AthenaWeb, :controller alias Athena.Inventory alias Athena.Inventory.Event def index(conn, _params) do events = Inventory.list_events() render(conn, "index.html", events: events) end def new(conn, _params) do changeset = Inventory.change_event(%Event{}) render(conn, "new.html", changeset: changeset) end def create(conn, %{"event" => event_params}) do case Inventory.create_event(event_params) do {:ok, event} -> conn |> put_flash(:info, gettext("Event created successfully.")) |> redirect(to: Routes.admin_event_path(conn, :show, event)) {:error, %Ecto.Changeset{} = changeset} -> render(conn, "new.html", changeset: changeset) end end def show(conn, %{"id" => id}) do event = Inventory.get_event!(id) render_with_navigation(conn, event, "show.html", event: event) end def edit(conn, %{"id" => id}) do event = Inventory.get_event!(id) changeset = Inventory.change_event(event) render_with_navigation(conn, event, "edit.html", event: event, changeset: changeset) end def update(conn, %{"id" => id, "event" => event_params}) do event = Inventory.get_event!(id) case Inventory.update_event(event, event_params) do {:ok, event} -> conn |> put_flash(:info, gettext("Event updated successfully.")) |> redirect(to: Routes.admin_event_path(conn, :show, event)) {:error, %Ecto.Changeset{} = changeset} -> render_with_navigation(conn, event, "edit.html", event: event, changeset: changeset) end end def delete(conn, %{"id" => id}) do event = Inventory.get_event!(id) {:ok, _event} = Inventory.delete_event(event) conn |> put_flash(:info, gettext("Event deleted successfully.")) |> redirect(to: Routes.admin_event_path(conn, :index)) end end