diff options
Diffstat (limited to 'lib/pleroma/web/router.ex')
-rw-r--r-- | lib/pleroma/web/router.ex | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index c6433cc53..ebffbf6a6 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -710,6 +710,47 @@ defmodule Pleroma.Web.Router do end end + get("/.well-known/matrix/client", Pleroma.Web.MatrixController, :wellknown) + + scope "/_matrix", Pleroma.Web do + pipe_through(:api) + get("/client/versions", MatrixController, :client_versions) + get("/client/r0/login", MatrixController, :login_info) + post("/client/r0/login", MatrixController, :login) + get("/client/r0/presence/:user_id/status", MatrixController, :presence_status) + get("/client/r0/user/:user_id/filter/:filter_id", MatrixController, :filter) + get("/media/r0/download/:authority/:file", MatrixController, :download) + get("/media/r0/thumbnail/:authority/:file", MatrixController, :download) + # Says it's r0 in the documentation, seems it's actually v1 on iOS + get("/media/v1/download/:authority/:file", MatrixController, :download) + get("/media/v1/thumbnail/:authority/:file", MatrixController, :download) + end + + scope "/_matrix", Pleroma.Web do + pipe_through(:authenticated_api) + put("/client/r0/presence/:user_id/status", MatrixController, :set_presence_status) + get("/client/r0/pushrules", MatrixController, :pushrules) + post("/client/r0/user/:user_id/filter", MatrixController, :set_filter) + get("/client/r0/sync", MatrixController, :sync) + post("/client/r0/keys/query", MatrixController, :key_query) + get("/client/r0/profile/:user_id", MatrixController, :profile) + get("/client/r0/profile/:user_id/displayname", MatrixController, :profile) + get("/client/r0/profile/:user_id/avatar_url", MatrixController, :profile) + get("/client/r0/joined_groups", MatrixController, :joined_groups) + get("/client/unstable/room_keys/version", MatrixController, :room_keys_version) + post("/client/r0/keys/upload", MatrixController, :key_upload) + # The iOS client uses this call. No idea what it is about. + post("/client/r0/keys/upload/:whoknows", MatrixController, :key_upload) + get("/client/r0/capabilities", MatrixController, :capabilities) + post("/client/r0/rooms/:room_id/read_markers", MatrixController, :set_read_marker) + put("/client/r0/rooms/:room_id/typing/:user_id", MatrixController, :typing) + get("/client/r0/rooms/:room_id/members", MatrixController, :room_members) + post("/client/r0/publicised_groups", MatrixController, :publicised_groups) + get("/client/r0/voip/turnServer", MatrixController, :turn_server) + put("/client/r0/rooms/:room_id/send/:event_type/:txn_id", MatrixController, :send_event) + put("/client/r0/user/:user_id/account_data/:type", MatrixController, :set_account_data) + end + scope "/", Pleroma.Web.MongooseIM do get("/user_exists", MongooseIMController, :user_exists) get("/check_password", MongooseIMController, :check_password) |