architex/lib/matrix_server_web/client/controllers/aliases_controller.ex

28 lines
647 B
Elixir
Raw Normal View History

2021-08-06 21:14:27 +00:00
defmodule MatrixServerWeb.Client.AliasesController do
2021-07-30 13:56:24 +00:00
use MatrixServerWeb, :controller
import MatrixServerWeb.Error
2021-07-30 13:56:24 +00:00
alias MatrixServer.Alias
@doc """
Create a new mapping from room alias to room ID.
Action for PUT /_matrix/client/r0/directory/room/{roomAlias}.
"""
2021-07-30 13:56:24 +00:00
def create(conn, %{"alias" => alias, "room_id" => room_id}) do
case Alias.create(alias, room_id) do
{:ok, _} ->
conn
|> put_status(200)
|> json(%{})
{:error, cs} ->
put_error(conn, Alias.get_error(cs))
end
end
# TODO: create error view for this?
def create(conn, _), do: put_error(conn, :bad_json)
end