blob: 9a09f96a86d8482d5782f0ae5c3ec7f29e4af771 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
defmodule MatrixAppServiceWeb.V1.RoomController do
@moduledoc """
Controller for rooms.
"""
use MatrixAppServiceWeb, :controller
@doc """
https://matrix.org/docs/spec/application_service/r0.1.2#get-matrix-app-v1-rooms-roomalias
"""
def query(conn, %{"room_alias" => room_alias}) when is_list(room_alias) do
query(conn, %{"room_alias" => Enum.join(room_alias, "/")})
end
def query(conn, %{"room_alias" => room_alias}) do
adapter =
conn.private[:room_adapter] ||
MatrixAppServiceWeb.Endpoint.config(:room_adapter) ||
raise "MatrixAppService: config key room_adapter missing"
with :ok <- adapter.query_alias(room_alias) do
conn
|> put_status(200)
|> json("{}")
else
_ ->
conn
|> put_status(404)
|> json("")
end
end
end
|