mirror of
https://github.com/ClaperCo/Claper.git
synced 2025-12-16 11:57:58 +01:00
35 lines
944 B
Elixir
35 lines
944 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
|