mirror of
https://github.com/ClaperCo/Claper.git
synced 2025-12-15 19:37:53 +01:00
33 lines
915 B
Elixir
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
|