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