Current section
Files
Jump to
Current section
Files
lib/courier/web/endpoint.ex
defmodule Courier.Web.Endpoint do
use Plug.Router
alias Courier.{Adapters.Web, Web.Serializers.Message}
plug :match
plug :dispatch
get "/messages" do
data =
Web.messages()
|> Message.format(conn)
|> Poison.encode!()
send_resp(conn, 200, data)
end
delete "/messages/:id" do
find_message(id)
|> case do
nil -> send_resp(conn, 404, "")
message ->
Web.delete(message)
send_resp(conn, 204, "")
end
end
defp find_message(id) do
Web.messages()
|> Enum.find(fn(message) ->
stringify_id(Mail.Message.get_header(message, :id)) == stringify_id(id)
end)
end
defp stringify_id(id) when is_binary(id), do: id
defp stringify_id(id) when is_integer(id), do: Integer.to_string(id)
end