43 lines
1 KiB
Elixir
43 lines
1 KiB
Elixir
defmodule NullaWeb.Api.LikeController do
|
|
use NullaWeb, :controller
|
|
|
|
alias Nulla.Likes
|
|
alias Nulla.Likes.Like
|
|
|
|
action_fallback NullaWeb.FallbackController
|
|
|
|
def index(conn, _params) do
|
|
likes = Likes.list_likes()
|
|
render(conn, :index, likes: likes)
|
|
end
|
|
|
|
def create(conn, %{"like" => like_params}) do
|
|
with {:ok, %Like{} = like} <- Likes.create_like(like_params) do
|
|
conn
|
|
|> put_status(:created)
|
|
|> put_resp_header("location", ~p"/api/likes/#{like}")
|
|
|> render(:show, like: like)
|
|
end
|
|
end
|
|
|
|
def show(conn, %{"id" => id}) do
|
|
like = Likes.get_like!(id)
|
|
render(conn, :show, like: like)
|
|
end
|
|
|
|
def update(conn, %{"id" => id, "like" => like_params}) do
|
|
like = Likes.get_like!(id)
|
|
|
|
with {:ok, %Like{} = like} <- Likes.update_like(like, like_params) do
|
|
render(conn, :show, like: like)
|
|
end
|
|
end
|
|
|
|
def delete(conn, %{"id" => id}) do
|
|
like = Likes.get_like!(id)
|
|
|
|
with {:ok, %Like{}} <- Likes.delete_like(like) do
|
|
send_resp(conn, :no_content, "")
|
|
end
|
|
end
|
|
end
|