defmodule PhilomenaWeb.Conversation.HideController do use PhilomenaWeb, :controller alias Philomena.Conversations.Conversation alias Philomena.Conversations plug PhilomenaWeb.CanaryMapPlug, create: :show, delete: :show plug :load_and_authorize_resource, model: Conversation, id_field: "slug", id_name: "conversation_id", persisted: true def create(conn, _params) do conversation = conn.assigns.conversation user = conn.assigns.current_user {:ok, _conversation} = Conversations.mark_conversation_hidden(conversation, user) conn |> put_flash(:info, "Conversation hidden.") |> redirect(to: Routes.conversation_path(conn, :index)) end def delete(conn, _params) do conversation = conn.assigns.conversation user = conn.assigns.current_user {:ok, _conversation} = Conversations.mark_conversation_hidden(conversation, user, false) conn |> put_flash(:info, "Conversation restored.") |> redirect(to: Routes.conversation_path(conn, :show, conversation)) end end