summaryrefslogtreecommitdiff
path: root/lib/matrix_app_service_web/controllers/v1/room_controller.ex
blob: e7af00d9e5ac89d53618d85d551ea724e63ce4ae (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
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}) 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