defmodule SnowcrawlerWeb.DisplayController do use SnowcrawlerWeb, :controller alias Snowcrawler.Interface alias Snowcrawler.Interface.Display action_fallback SnowcrawlerWeb.FallbackController def index(conn, _params) do displays = Interface.list_displays() render(conn, "index.json", displays: displays) end def create(conn, %{"display" => display_params}) do with {:ok, %Display{} = display} <- Interface.create_display(display_params) do conn |> put_status(:created) |> put_resp_header("location", Routes.display_path(conn, :show, display)) |> render("show.json", display: display) end end def show(conn, %{"id" => id}) do display = Interface.get_display!(id) render(conn, "show.json", display: display) end def update(conn, %{"id" => id, "display" => display_params}) do display = Interface.get_display!(id) with {:ok, %Display{} = display} <- Interface.update_display(display, display_params) do render(conn, "show.json", display: display) end end def delete(conn, %{"id" => id}) do display = Interface.get_display!(id) with {:ok, %Display{}} <- Interface.delete_display(display) do send_resp(conn, :no_content, "") end end end