birdy_chat/lib/birdy_chat_web/api/messages/controller.ex
2026-03-01 11:35:32 +02:00

25 lines
680 B
Elixir

defmodule BirdyChatWeb.Api.Messages.Controller do
use BirdyChatWeb, :controller
def create(conn, params) do
case BirdyChat.Message.validate(params) do
{:ok, changeset} ->
case BirdyChat.Dispatcher.dispatch(changeset) do
:ok ->
conn
|> put_status(:created)
|> render(:create, message: changeset.changes)
{:error, error} ->
conn
|> put_status(:unprocessable_entity)
|> render(:error, message: error)
end
{:error, changeset} ->
conn
|> put_status(:unprocessable_entity)
|> render(:error, changeset: changeset)
end
end
end