29 lines
763 B
Elixir
29 lines
763 B
Elixir
defmodule BirdyChatWeb.Api.Messages.Controller do
|
|
@moduledoc """
|
|
The endpoint to be used by users from the "home server".
|
|
"""
|
|
|
|
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
|