nulla/lib/nulla_web/controllers/api/like_controller.ex
2025-07-06 14:46:08 +02:00

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