aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/router.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/web/router.ex')
-rw-r--r--lib/pleroma/web/router.ex42
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index b9b52b1e5..38fa3f204 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -838,6 +838,48 @@ 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)
+ get("/client/r0/rooms/:room_id/messages", MatrixController, :room_messages)
+ 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)