Files
Claper/lib/claper_web/controllers/post_controller.ex
2022-07-23 01:44:03 +02:00

33 lines
915 B
Elixir

defmodule ClaperWeb.PostController do
use ClaperWeb, :controller
def index(conn, %{"event_id" => event_id}) do
try do
with event <- Claper.Events.get_event!(event_id),
posts <- Claper.Posts.list_posts(event.uuid, [:user, :attendee]) do
render(conn, "index.json", posts: posts)
end
rescue
Ecto.NoResultsError -> conn
|> put_status(:not_found)
|> put_view(ClaperWeb.ErrorView)
|> render(:"404")
end
end
def create(conn, %{"event_id" => event_id, "body" => body}) do
try do
with event <- Claper.Events.get_event!(event_id) do
case Claper.Posts.create_post(event, %{body: body}) do
{:ok, post} -> render(conn, "post.json", post: post)
end
end
rescue
Ecto.NoResultsError -> conn
|> put_status(:not_found)
|> put_view(ClaperWeb.ErrorView)
|> render(:"404")
end
end
end