defmodule ScopesWeb.ConceptController do use ScopesWeb, :controller alias Scopes.Storage alias Scopes.Storage.Concept action_fallback ScopesWeb.FallbackController def index(conn, _params) do concepts = Storage.list_concepts() render(conn, :index, concepts: concepts) end def create(conn, %{"concept" => concept_params}) do with {:ok, %Concept{} = concept} <- Storage.create_concept(concept_params) do conn |> put_status(:created) |> put_resp_header("location", ~p"/api/concepts/#{concept}") |> render(:show, concept: concept) end end def show(conn, %{"id" => id}) do concept = Storage.get_concept!(id) render(conn, :show, concept: concept) end def update(conn, %{"id" => id, "concept" => concept_params}) do concept = Storage.get_concept!(id) with {:ok, %Concept{} = concept} <- Storage.update_concept(concept, concept_params) do render(conn, :show, concept: concept) end end def delete(conn, %{"id" => id}) do concept = Storage.get_concept!(id) with {:ok, %Concept{}} <- Storage.delete_concept(concept) do send_resp(conn, :no_content, "") end end end