architex/lib/matrix_server_web/router.ex

66 lines
1.7 KiB
Elixir
Raw Normal View History

2021-06-22 12:09:25 +00:00
defmodule MatrixServerWeb.Router do
use MatrixServerWeb, :router
alias MatrixServerWeb.Plug.AuthenticateClient
# TODO: might be able to handle malformed JSON with custom body reader:
# https://elixirforum.com/t/write-malformed-json-in-the-body-plug/30578/13
2021-06-25 23:14:09 +00:00
pipeline :public do
2021-06-22 12:09:25 +00:00
plug :accepts, ["json"]
end
2021-08-06 21:14:27 +00:00
pipeline :authenticate_client do
plug :accepts, ["json"]
plug AuthenticateClient
end
2021-08-06 21:14:27 +00:00
pipeline :authenticate_server do
plug :accepts, ["json"]
end
scope "/_matrix", MatrixServerWeb do
pipe_through :public
2021-08-06 21:14:27 +00:00
scope "/client", Client do
scope "/r0" do
post "/register", RegisterController, :register
get "/register/available", AccountController, :available
get "/login", LoginController, :login_types
post "/login", LoginController, :login
end
get "/versions", InfoController, :versions
end
2021-08-06 21:14:27 +00:00
scope "/key/v2", Federation do
get "/server", KeyController, :get_signing_keys
end
2021-06-22 12:09:25 +00:00
end
2021-08-06 21:14:27 +00:00
scope "/_matrix", MatrixServerWeb.Client do
pipe_through :authenticate_client
2021-07-13 15:08:07 +00:00
scope "/client/r0" do
get "/account/whoami", AccountController, :whoami
post "/logout", AccountController, :logout
post "/logout/all", AccountController, :logout_all
2021-07-10 21:16:00 +00:00
post "/createRoom", RoomController, :create
2021-07-30 13:56:24 +00:00
scope "/directory/room" do
put "/:alias", AliasesController, :create
end
end
end
2021-06-26 20:02:18 +00:00
2021-08-06 21:14:27 +00:00
scope "/_matrix", MatrixServerWeb.Federation do
pipe_through :authenticate_server
2021-08-06 21:14:27 +00:00
2021-08-10 16:02:53 +00:00
get "/federation/v1/query/profile", QueryController, :profile
2021-08-06 21:14:27 +00:00
end
scope "/", MatrixServerWeb.Client do
2021-06-26 20:02:18 +00:00
match :*, "/*path", InfoController, :unrecognized
end
2021-06-22 12:09:25 +00:00
end