diff options
author | Matthew Hodgson <matthew@matrix.org> | 2014-08-31 14:51:37 +0100 |
---|---|---|
committer | Matthew Hodgson <matthew@matrix.org> | 2014-08-31 14:51:37 +0100 |
commit | 8fe912d95c96a2e3faff9f480c04060fa7cd0c0d (patch) | |
tree | fd7ab6d7f5f4ba3f2b812a5a337eb10265ae045e | |
parent | make lightbox a bit less ugly (diff) | |
download | synapse-8fe912d95c96a2e3faff9f480c04060fa7cd0c0d.tar.xz |
change the world: make the default matrix API URL prefix /_matrix rather than /matrix to make it easier for existing websites to mount a HS in their namespace without collisions.
perl -pi -e 's#/matrix#/_matrix#g' ./cmdclient/console.py ./docs/client-server/howto.rst ./docs/client-server/specification.rst ./docs/client-server/swagger_matrix/directory ./docs/client-server/swagger_matrix/events ./docs/client-server/swagger_matrix/login ./docs/client-server/swagger_matrix/presence ./docs/client-server/swagger_matrix/profile ./docs/client-server/swagger_matrix/registration ./docs/client-server/swagger_matrix/rooms ./docs/server-server/specification.rst ./graph/graph.py ./jsfiddles/create_room_send_msg/demo.js ./jsfiddles/event_stream/demo.js ./jsfiddles/example_app/demo.js ./jsfiddles/register_login/demo.js ./jsfiddles/room_memberships/demo.js ./synapse/api/urls.py ./tests/federation/test_federation.py ./tests/handlers/test_presence.py ./tests/handlers/test_typing.py ./tests/rest/test_events.py ./tests/rest/test_presence.py ./tests/rest/test_profile.py ./tests/rest/test_rooms.py ./webclient/components/fileUpload/file-upload-service.js ./webclient/components/matrix/matrix-service.js
27 files changed, 93 insertions, 93 deletions
diff --git a/cmdclient/console.py b/cmdclient/console.py index 7bda4000fc..7678b5e352 100755 --- a/cmdclient/console.py +++ b/cmdclient/console.py @@ -60,7 +60,7 @@ class SynapseCmd(cmd.Cmd): "complete_usernames": "on", "send_delivery_receipts": "on" } - self.path_prefix = "/matrix/client/api/v1" + self.path_prefix = "/_matrix/client/api/v1" self.event_stream_token = "END" self.prompt = ">>> " @@ -252,7 +252,7 @@ class SynapseCmd(cmd.Cmd): @defer.inlineCallbacks def _do_emailrequest(self, args): - url = self._identityServerUrl()+"/matrix/identity/api/v1/validate/email/requestToken" + url = self._identityServerUrl()+"/_matrix/identity/api/v1/validate/email/requestToken" json_res = yield self.http_client.do_request("POST", url, data=urllib.urlencode(args), jsonreq=False, headers={'Content-Type': ['application/x-www-form-urlencoded']}) @@ -274,7 +274,7 @@ class SynapseCmd(cmd.Cmd): @defer.inlineCallbacks def _do_emailvalidate(self, args): - url = self._identityServerUrl()+"/matrix/identity/api/v1/validate/email/submitToken" + url = self._identityServerUrl()+"/_matrix/identity/api/v1/validate/email/submitToken" json_res = yield self.http_client.do_request("POST", url, data=urllib.urlencode(args), jsonreq=False, headers={'Content-Type': ['application/x-www-form-urlencoded']}) @@ -294,7 +294,7 @@ class SynapseCmd(cmd.Cmd): @defer.inlineCallbacks def _do_3pidbind(self, args): - url = self._identityServerUrl()+"/matrix/identity/api/v1/3pid/bind" + url = self._identityServerUrl()+"/_matrix/identity/api/v1/3pid/bind" json_res = yield self.http_client.do_request("POST", url, data=urllib.urlencode(args), jsonreq=False, headers={'Content-Type': ['application/x-www-form-urlencoded']}) @@ -360,14 +360,14 @@ class SynapseCmd(cmd.Cmd): def _do_invite(self, roomid, userstring): if (not userstring.startswith('@') and self._is_on("complete_usernames")): - url = self._identityServerUrl()+"/matrix/identity/api/v1/lookup" + url = self._identityServerUrl()+"/_matrix/identity/api/v1/lookup" json_res = yield self.http_client.do_request("GET", url, qparams={'medium':'email','address':userstring}) mxid = None if 'mxid' in json_res and 'signatures' in json_res: - url = self._identityServerUrl()+"/matrix/identity/api/v1/pubkey/ed25519" + url = self._identityServerUrl()+"/_matrix/identity/api/v1/pubkey/ed25519" pubKey = None pubKeyObj = yield self.http_client.do_request("GET", url) diff --git a/docs/client-server/howto.rst b/docs/client-server/howto.rst index 9ef4cb5f78..3660c73d36 100644 --- a/docs/client-server/howto.rst +++ b/docs/client-server/howto.rst @@ -30,7 +30,7 @@ Registration The aim of registration is to get a user ID and access token which you will need when accessing other APIs:: - curl -XPOST -d '{"user_id":"example", "password":"wordpass"}' "http://localhost:8080/matrix/client/api/v1/register" + curl -XPOST -d '{"user_id":"example", "password":"wordpass"}' "http://localhost:8080/_matrix/client/api/v1/register" { "access_token": "QGV4YW1wbGU6bG9jYWxob3N0.AqdSzFmFYrLrTmteXc", @@ -51,13 +51,13 @@ Login ----- The aim when logging in is to get an access token for your existing user ID:: - curl -XGET "http://localhost:8080/matrix/client/api/v1/login" + curl -XGET "http://localhost:8080/_matrix/client/api/v1/login" { "type": "m.login.password" } - curl -XPOST -d '{"type":"m.login.password", "user":"example", "password":"wordpass"}' "http://localhost:8080/matrix/client/api/v1/login" + curl -XPOST -d '{"type":"m.login.password", "user":"example", "password":"wordpass"}' "http://localhost:8080/_matrix/client/api/v1/login" { "access_token": "QGV4YW1wbGU6bG9jYWxob3N0.vRDLTgxefmKWQEtgGd", @@ -87,7 +87,7 @@ Creating a room If you want to send a message to someone, you have to be in a room with them. To create a room:: - curl -XPOST -d '{"room_alias_name":"tutorial"}' "http://localhost:8080/matrix/client/api/v1/rooms?access_token=QGV4YW1wbGU6bG9jYWxob3N0.vRDLTgxefmKWQEtgGd" + curl -XPOST -d '{"room_alias_name":"tutorial"}' "http://localhost:8080/_matrix/client/api/v1/rooms?access_token=QGV4YW1wbGU6bG9jYWxob3N0.vRDLTgxefmKWQEtgGd" { "room_alias": "#tutorial:localhost", @@ -105,7 +105,7 @@ Sending messages ---------------- You can now send messages to this room:: - curl -XPUT -d '{"msgtype":"m.text", "body":"hello"}' "http://localhost:8080/matrix/client/api/v1/rooms/%21CvcvRuDYDzTOzfKKgh:localhost/messages/%40example%3Alocalhost/msgid1?access_token=QGV4YW1wbGU6bG9jYWxob3N0.vRDLTgxefmKWQEtgGd" + curl -XPUT -d '{"msgtype":"m.text", "body":"hello"}' "http://localhost:8080/_matrix/client/api/v1/rooms/%21CvcvRuDYDzTOzfKKgh:localhost/messages/%40example%3Alocalhost/msgid1?access_token=QGV4YW1wbGU6bG9jYWxob3N0.vRDLTgxefmKWQEtgGd" NB: There are no limitations to the types of messages which can be exchanged. The only requirement is that ``"msgtype"`` is specified. @@ -127,7 +127,7 @@ Inviting a user to a room ------------------------- You can directly invite a user to a room like so:: - curl -XPUT -d '{"membership":"invite"}' "http://localhost:8080/matrix/client/api/v1/rooms/%21CvcvRuDYDzTOzfKKgh:localhost/members/%40myfriend%3Alocalhost/state?access_token=QGV4YW1wbGU6bG9jYWxob3N0.vRDLTgxefmKWQEtgGd" + curl -XPUT -d '{"membership":"invite"}' "http://localhost:8080/_matrix/client/api/v1/rooms/%21CvcvRuDYDzTOzfKKgh:localhost/members/%40myfriend%3Alocalhost/state?access_token=QGV4YW1wbGU6bG9jYWxob3N0.vRDLTgxefmKWQEtgGd" This informs ``@myfriend:localhost`` of the room ID ``!CvcvRuDYDzTOzfKKgh:localhost`` and allows them to join the room. @@ -137,7 +137,7 @@ Joining a room via an invite If you receive an invite, you can join the room by changing the membership to join:: - curl -XPUT -d '{"membership":"join"}' "http://localhost:8080/matrix/client/api/v1/rooms/%21CvcvRuDYDzTOzfKKgh:localhost/members/%40myfriend%3Alocalhost/state?access_token=QG15ZnJpZW5kOmxvY2FsaG9zdA...XKuGdVsovHmwMyDDvK" + curl -XPUT -d '{"membership":"join"}' "http://localhost:8080/_matrix/client/api/v1/rooms/%21CvcvRuDYDzTOzfKKgh:localhost/members/%40myfriend%3Alocalhost/state?access_token=QG15ZnJpZW5kOmxvY2FsaG9zdA...XKuGdVsovHmwMyDDvK" NB: Only the person invited (``@myfriend:localhost``) can change the membership state to ``"join"``. @@ -147,7 +147,7 @@ Joining a room via an alias Alternatively, if you know the room alias for this room and the room config allows it, you can directly join a room via the alias:: - curl -XPUT -d '{}' "http://localhost:8080/matrix/client/api/v1/join/%23tutorial%3Alocalhost?access_token=QG15ZnJpZW5kOmxvY2FsaG9zdA...XKuGdVsovHmwMyDDvK" + curl -XPUT -d '{}' "http://localhost:8080/_matrix/client/api/v1/join/%23tutorial%3Alocalhost?access_token=QG15ZnJpZW5kOmxvY2FsaG9zdA...XKuGdVsovHmwMyDDvK" { "room_id": "!CvcvRuDYDzTOzfKKgh:localhost" @@ -173,7 +173,7 @@ Getting all state If the client doesn't know any information on the rooms the user is invited/joined on, they can get all the user's state for all rooms:: - curl -XGET "http://localhost:8080/matrix/client/api/v1/im/sync?access_token=QG15ZnJpZW5kOmxvY2FsaG9zdA...XKuGdVsovHmwMyDDvK" + curl -XGET "http://localhost:8080/_matrix/client/api/v1/im/sync?access_token=QG15ZnJpZW5kOmxvY2FsaG9zdA...XKuGdVsovHmwMyDDvK" [ { @@ -236,7 +236,7 @@ all of the messages and feedback for these rooms. This can be a LOT of data. You may just want the most recent message for each room. This can be achieved by applying pagination stream parameters to this request:: - curl -XGET "http://localhost:8080/matrix/client/api/v1/im/sync?access_token=QG15ZnJpZW5kOmxvY2FsaG9zdA...XKuGdVsovHmwMyDDvK&from=END&to=START&limit=1" + curl -XGET "http://localhost:8080/_matrix/client/api/v1/im/sync?access_token=QG15ZnJpZW5kOmxvY2FsaG9zdA...XKuGdVsovHmwMyDDvK&from=END&to=START&limit=1" [ { @@ -271,7 +271,7 @@ Getting live state Once you know which rooms the client has previously interacted with, you need to listen for incoming events. This can be done like so:: - curl -XGET "http://localhost:8080/matrix/client/api/v1/events?access_token=QG15ZnJpZW5kOmxvY2FsaG9zdA...XKuGdVsovHmwMyDDvK&from=END" + curl -XGET "http://localhost:8080/_matrix/client/api/v1/events?access_token=QG15ZnJpZW5kOmxvY2FsaG9zdA...XKuGdVsovHmwMyDDvK&from=END" { "chunk": [], diff --git a/docs/client-server/specification.rst b/docs/client-server/specification.rst index 4c1a3d4456..ee8bb5c420 100644 --- a/docs/client-server/specification.rst +++ b/docs/client-server/specification.rst @@ -306,11 +306,11 @@ POST requests MUST be submitted as application/json. All paths MUST be namespaced by the version of the API being used. This should be: -/matrix/client/api/v1 +/_matrix/client/api/v1 All REST paths in this section MUST be prefixed with this. E.g. REST Path: /rooms/$room_id - Absolute Path: /matrix/client/api/v1/rooms/$room_id + Absolute Path: /_matrix/client/api/v1/rooms/$room_id Registration ============ diff --git a/docs/client-server/swagger_matrix/directory b/docs/client-server/swagger_matrix/directory index 3f3bef9c11..98109a0fbc 100644 --- a/docs/client-server/swagger_matrix/directory +++ b/docs/client-server/swagger_matrix/directory @@ -1,7 +1,7 @@ { "apiVersion": "1.0.0", "swaggerVersion": "1.2", - "basePath": "http://localhost:8080/matrix/client/api/v1", + "basePath": "http://localhost:8080/_matrix/client/api/v1", "resourcePath": "/directory", "produces": [ "application/json" diff --git a/docs/client-server/swagger_matrix/events b/docs/client-server/swagger_matrix/events index ca69d34db5..d22c68cc78 100644 --- a/docs/client-server/swagger_matrix/events +++ b/docs/client-server/swagger_matrix/events @@ -1,7 +1,7 @@ { "apiVersion": "1.0.0", "swaggerVersion": "1.2", - "basePath": "http://localhost:8080/matrix/client/api/v1", + "basePath": "http://localhost:8080/_matrix/client/api/v1", "resourcePath": "/events", "produces": [ "application/json" diff --git a/docs/client-server/swagger_matrix/login b/docs/client-server/swagger_matrix/login index 4410d3c887..8cc598b3c1 100644 --- a/docs/client-server/swagger_matrix/login +++ b/docs/client-server/swagger_matrix/login @@ -40,7 +40,7 @@ "path": "/login" } ], - "basePath": "http://localhost:8080/matrix/client/api/v1", + "basePath": "http://localhost:8080/_matrix/client/api/v1", "consumes": [ "application/json" ], diff --git a/docs/client-server/swagger_matrix/presence b/docs/client-server/swagger_matrix/presence index 1b4c7323aa..d52ce2164a 100644 --- a/docs/client-server/swagger_matrix/presence +++ b/docs/client-server/swagger_matrix/presence @@ -1,7 +1,7 @@ { "apiVersion": "1.0.0", "swaggerVersion": "1.2", - "basePath": "http://localhost:8080/matrix/client/api/v1", + "basePath": "http://localhost:8080/_matrix/client/api/v1", "resourcePath": "/presence", "produces": [ "application/json" diff --git a/docs/client-server/swagger_matrix/profile b/docs/client-server/swagger_matrix/profile index 1ebde62e20..188259fa3d 100644 --- a/docs/client-server/swagger_matrix/profile +++ b/docs/client-server/swagger_matrix/profile @@ -1,7 +1,7 @@ { "apiVersion": "1.0.0", "swaggerVersion": "1.2", - "basePath": "http://localhost:8080/matrix/client/api/v1", + "basePath": "http://localhost:8080/_matrix/client/api/v1", "resourcePath": "/profile", "produces": [ "application/json" diff --git a/docs/client-server/swagger_matrix/registration b/docs/client-server/swagger_matrix/registration index ccd542d11e..2048aec1d2 100644 --- a/docs/client-server/swagger_matrix/registration +++ b/docs/client-server/swagger_matrix/registration @@ -37,7 +37,7 @@ "path": "/register" } ], - "basePath": "http://localhost:8080/matrix/client/api/v1", + "basePath": "http://localhost:8080/_matrix/client/api/v1", "consumes": [ "application/json" ], diff --git a/docs/client-server/swagger_matrix/rooms b/docs/client-server/swagger_matrix/rooms index 1c32d135aa..7d3341f097 100644 --- a/docs/client-server/swagger_matrix/rooms +++ b/docs/client-server/swagger_matrix/rooms @@ -1,7 +1,7 @@ { "apiVersion": "1.0.0", "swaggerVersion": "1.2", - "basePath": "http://localhost:8080/matrix/client/api/v1", + "basePath": "http://localhost:8080/_matrix/client/api/v1", "resourcePath": "/rooms", "produces": [ "application/json" diff --git a/docs/server-server/specification.rst b/docs/server-server/specification.rst index a9ab9bff66..17cffafdd4 100644 --- a/docs/server-server/specification.rst +++ b/docs/server-server/specification.rst @@ -155,7 +155,7 @@ Protocol URLs All these URLs are namespaced within a prefix of - /matrix/federation/v1/... + /_matrix/federation/v1/... For active pushing of messages representing live activity "as it happens": diff --git a/graph/graph.py b/graph/graph.py index 220f5eb1d5..ac06d979e1 100644 --- a/graph/graph.py +++ b/graph/graph.py @@ -120,7 +120,7 @@ def make_graph(pdus, room, filename_prefix): def get_pdus(host, room): transaction = json.loads( urllib2.urlopen( - "http://%s/matrix/federation/v1/context/%s/" % (host, room) + "http://%s/_matrix/federation/v1/context/%s/" % (host, room) ).read() ) diff --git a/jsfiddles/create_room_send_msg/demo.js b/jsfiddles/create_room_send_msg/demo.js index db2ae2d606..61044da743 100644 --- a/jsfiddles/create_room_send_msg/demo.js +++ b/jsfiddles/create_room_send_msg/demo.js @@ -10,7 +10,7 @@ $('.login').live('click', function() { var user = $("#userLogin").val(); var password = $("#passwordLogin").val(); $.ajax({ - url: "http://localhost:8080/matrix/client/api/v1/login", + url: "http://localhost:8080/_matrix/client/api/v1/login", type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify({ user: user, password: password, type: "m.login.password" }), @@ -25,7 +25,7 @@ $('.login').live('click', function() { }); var getCurrentRoomList = function() { - var url = "http://localhost:8080/matrix/client/api/v1/initialSync?access_token=" + accountInfo.access_token + "&limit=1"; + var url = "http://localhost:8080/_matrix/client/api/v1/initialSync?access_token=" + accountInfo.access_token + "&limit=1"; $.getJSON(url, function(data) { var rooms = data.rooms; for (var i=0; i<rooms.length; ++i) { @@ -44,7 +44,7 @@ $('.createRoom').live('click', function() { data.room_alias_name = roomAlias; } $.ajax({ - url: "http://localhost:8080/matrix/client/api/v1/createRoom?access_token="+accountInfo.access_token, + url: "http://localhost:8080/_matrix/client/api/v1/createRoom?access_token="+accountInfo.access_token, type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify(data), @@ -79,7 +79,7 @@ $('.sendMessage').live('click', function() { return; } - var url = "http://localhost:8080/matrix/client/api/v1/rooms/$roomid/send/m.room.message?access_token=$token"; + var url = "http://localhost:8080/_matrix/client/api/v1/rooms/$roomid/send/m.room.message?access_token=$token"; url = url.replace("$token", accountInfo.access_token); url = url.replace("$roomid", encodeURIComponent(roomId)); diff --git a/jsfiddles/event_stream/demo.js b/jsfiddles/event_stream/demo.js index 3f132cd98e..997d1a2240 100644 --- a/jsfiddles/event_stream/demo.js +++ b/jsfiddles/event_stream/demo.js @@ -7,7 +7,7 @@ var eventStreamInfo = { var roomInfo = []; var longpollEventStream = function() { - var url = "http://localhost:8080/matrix/client/api/v1/events?access_token=$token&from=$from"; + var url = "http://localhost:8080/_matrix/client/api/v1/events?access_token=$token&from=$from"; url = url.replace("$token", accountInfo.access_token); url = url.replace("$from", eventStreamInfo.from); @@ -48,7 +48,7 @@ $('.login').live('click', function() { var user = $("#userLogin").val(); var password = $("#passwordLogin").val(); $.ajax({ - url: "http://localhost:8080/matrix/client/api/v1/login", + url: "http://localhost:8080/_matrix/client/api/v1/login", type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify({ user: user, password: password, type: "m.login.password" }), @@ -65,7 +65,7 @@ $('.login').live('click', function() { var getCurrentRoomList = function() { $("#roomId").val(""); - var url = "http://localhost:8080/matrix/client/api/v1/initialSync?access_token=" + accountInfo.access_token + "&limit=1"; + var url = "http://localhost:8080/_matrix/client/api/v1/initialSync?access_token=" + accountInfo.access_token + "&limit=1"; $.getJSON(url, function(data) { var rooms = data.rooms; for (var i=0; i<rooms.length; ++i) { @@ -98,7 +98,7 @@ var sendMessage = function(roomId) { return; } - var url = "http://localhost:8080/matrix/client/api/v1/rooms/$roomid/send/m.room.message?access_token=$token"; + var url = "http://localhost:8080/_matrix/client/api/v1/rooms/$roomid/send/m.room.message?access_token=$token"; url = url.replace("$token", accountInfo.access_token); url = url.replace("$roomid", encodeURIComponent(roomId)); diff --git a/jsfiddles/example_app/demo.js b/jsfiddles/example_app/demo.js index f5e08b326a..958232047f 100644 --- a/jsfiddles/example_app/demo.js +++ b/jsfiddles/example_app/demo.js @@ -10,7 +10,7 @@ var viewingRoomId; // ************** Event Streaming ************** var longpollEventStream = function() { - var url = "http://localhost:8080/matrix/client/api/v1/events?access_token=$token&from=$from"; + var url = "http://localhost:8080/_matrix/client/api/v1/events?access_token=$token&from=$from"; url = url.replace("$token", accountInfo.access_token); url = url.replace("$from", eventStreamInfo.from); @@ -89,7 +89,7 @@ $('.login').live('click', function() { var user = $("#userLogin").val(); var password = $("#passwordLogin").val(); $.ajax({ - url: "http://localhost:8080/matrix/client/api/v1/login", + url: "http://localhost:8080/_matrix/client/api/v1/login", type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify({ user: user, password: password, type: "m.login.password" }), @@ -107,7 +107,7 @@ $('.register').live('click', function() { var user = $("#userReg").val(); var password = $("#passwordReg").val(); $.ajax({ - url: "http://localhost:8080/matrix/client/api/v1/register", + url: "http://localhost:8080/_matrix/client/api/v1/register", type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify({ user_id: user, password: password }), @@ -134,7 +134,7 @@ $('.createRoom').live('click', function() { data.room_alias_name = roomAlias; } $.ajax({ - url: "http://localhost:8080/matrix/client/api/v1/createRoom?access_token="+accountInfo.access_token, + url: "http://localhost:8080/_matrix/client/api/v1/createRoom?access_token="+accountInfo.access_token, type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify(data), @@ -155,7 +155,7 @@ $('.createRoom').live('click', function() { // ************** Getting current state ************** var getCurrentRoomList = function() { - var url = "http://localhost:8080/matrix/client/api/v1/initialSync?access_token=" + accountInfo.access_token + "&limit=1"; + var url = "http://localhost:8080/_matrix/client/api/v1/initialSync?access_token=" + accountInfo.access_token + "&limit=1"; $.getJSON(url, function(data) { var rooms = data.rooms; for (var i=0; i<rooms.length; ++i) { @@ -181,7 +181,7 @@ var loadRoomContent = function(roomId) { var getMessages = function(roomId) { $("#messages").empty(); - var url = "http://localhost:8080/matrix/client/api/v1/rooms/" + + var url = "http://localhost:8080/_matrix/client/api/v1/rooms/" + encodeURIComponent(roomId) + "/messages?access_token=" + accountInfo.access_token + "&from=END&dir=b&limit=10"; $.getJSON(url, function(data) { for (var i=data.chunk.length-1; i>=0; --i) { @@ -193,7 +193,7 @@ var getMessages = function(roomId) { var getMemberList = function(roomId) { $("#members").empty(); memberInfo = []; - var url = "http://localhost:8080/matrix/client/api/v1/rooms/" + + var url = "http://localhost:8080/_matrix/client/api/v1/rooms/" + encodeURIComponent(roomId) + "/members?access_token=" + accountInfo.access_token; $.getJSON(url, function(data) { for (var i=0; i<data.chunk.length; ++i) { @@ -216,7 +216,7 @@ $('.sendMessage').live('click', function() { var sendMessage = function(roomId, body) { var msgId = $.now(); - var url = "http://localhost:8080/matrix/client/api/v1/rooms/$roomid/send/m.room.message?access_token=$token"; + var url = "http://localhost:8080/_matrix/client/api/v1/rooms/$roomid/send/m.room.message?access_token=$token"; url = url.replace("$token", accountInfo.access_token); url = url.replace("$roomid", encodeURIComponent(roomId)); @@ -262,7 +262,7 @@ var setRooms = function(roomList) { var membership = $(this).find('td:eq(1)').text(); if (membership !== "join") { console.log("Joining room " + roomId); - var url = "http://localhost:8080/matrix/client/api/v1/rooms/$roomid/join?access_token=$token"; + var url = "http://localhost:8080/_matrix/client/api/v1/rooms/$roomid/join?access_token=$token"; url = url.replace("$token", accountInfo.access_token); url = url.replace("$roomid", encodeURIComponent(roomId)); $.ajax({ diff --git a/jsfiddles/register_login/demo.js b/jsfiddles/register_login/demo.js index 270a96786c..1e68cb91bd 100644 --- a/jsfiddles/register_login/demo.js +++ b/jsfiddles/register_login/demo.js @@ -11,7 +11,7 @@ $('.register').live('click', function() { var user = $("#user").val(); var password = $("#password").val(); $.ajax({ - url: "http://localhost:8080/matrix/client/api/v1/register", + url: "http://localhost:8080/_matrix/client/api/v1/register", type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify({ user_id: user, password: password }), @@ -27,7 +27,7 @@ $('.register').live('click', function() { var login = function(user, password) { $.ajax({ - url: "http://localhost:8080/matrix/client/api/v1/login", + url: "http://localhost:8080/_matrix/client/api/v1/login", type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify({ user: user, password: password, type: "m.login.password" }), @@ -44,7 +44,7 @@ var login = function(user, password) { $('.login').live('click', function() { var user = $("#userLogin").val(); var password = $("#passwordLogin").val(); - $.getJSON("http://localhost:8080/matrix/client/api/v1/login", function(data) { + $.getJSON("http://localhost:8080/_matrix/client/api/v1/login", function(data) { if (data.flows[0].type !== "m.login.password") { alert("I don't know how to login with this type: " + data.type); return; @@ -60,7 +60,7 @@ $('.logout').live('click', function() { }); $('.testToken').live('click', function() { - var url = "http://localhost:8080/matrix/client/api/v1/initialSync?access_token=" + accountInfo.access_token + "&limit=1"; + var url = "http://localhost:8080/_matrix/client/api/v1/initialSync?access_token=" + accountInfo.access_token + "&limit=1"; $.getJSON(url, function(data) { $("#imSyncText").text(JSON.stringify(data, undefined, 2)); }).fail(function(err) { diff --git a/jsfiddles/room_memberships/demo.js b/jsfiddles/room_memberships/demo.js index 91cc96ab6f..7e499049ab 100644 --- a/jsfiddles/room_memberships/demo.js +++ b/jsfiddles/room_memberships/demo.js @@ -18,7 +18,7 @@ $('.login').live('click', function() { var user = $("#userLogin").val(); var password = $("#passwordLogin").val(); $.ajax({ - url: "http://localhost:8080/matrix/client/api/v1/login", + url: "http://localhost:8080/_matrix/client/api/v1/login", type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify({ user: user, password: password, type: "m.login.password" }), @@ -39,7 +39,7 @@ var getCurrentRoomList = function() { // solution but that is out of scope of this fiddle. $("#rooms").find("tr:gt(0)").remove(); - var url = "http://localhost:8080/matrix/client/api/v1/initialSync?access_token=" + accountInfo.access_token + "&limit=1"; + var url = "http://localhost:8080/_matrix/client/api/v1/initialSync?access_token=" + accountInfo.access_token + "&limit=1"; $.getJSON(url, function(data) { var rooms = data.rooms; for (var i=0; i<rooms.length; ++i) { @@ -53,7 +53,7 @@ var getCurrentRoomList = function() { $('.createRoom').live('click', function() { var data = {}; $.ajax({ - url: "http://localhost:8080/matrix/client/api/v1/createRoom?access_token="+accountInfo.access_token, + url: "http://localhost:8080/_matrix/client/api/v1/createRoom?access_token="+accountInfo.access_token, type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify(data), @@ -87,7 +87,7 @@ $('.changeMembership').live('click', function() { return; } - var url = "http://localhost:8080/matrix/client/api/v1/rooms/$roomid/$membership?access_token=$token"; + var url = "http://localhost:8080/_matrix/client/api/v1/rooms/$roomid/$membership?access_token=$token"; url = url.replace("$token", accountInfo.access_token); url = url.replace("$roomid", encodeURIComponent(roomId)); url = url.replace("$membership", membership); @@ -117,7 +117,7 @@ $('.changeMembership').live('click', function() { $('.joinAlias').live('click', function() { var roomAlias = $("#roomAlias").val(); - var url = "http://localhost:8080/matrix/client/api/v1/join/$roomalias?access_token=$token"; + var url = "http://localhost:8080/_matrix/client/api/v1/join/$roomalias?access_token=$token"; url = url.replace("$token", accountInfo.access_token); url = url.replace("$roomalias", encodeURIComponent(roomAlias)); $.ajax({ diff --git a/synapse/api/urls.py b/synapse/api/urls.py index 05ca000787..3d0b5de965 100644 --- a/synapse/api/urls.py +++ b/synapse/api/urls.py @@ -15,7 +15,7 @@ """Contains the URL paths to prefix various aspects of the server with. """ -CLIENT_PREFIX = "/matrix/client/api/v1" -FEDERATION_PREFIX = "/matrix/federation/v1" -WEB_CLIENT_PREFIX = "/matrix/client" -CONTENT_REPO_PREFIX = "/matrix/content" \ No newline at end of file +CLIENT_PREFIX = "/_matrix/client/api/v1" +FEDERATION_PREFIX = "/_matrix/federation/v1" +WEB_CLIENT_PREFIX = "/_matrix/client" +CONTENT_REPO_PREFIX = "/_matrix/content" \ No newline at end of file diff --git a/tests/federation/test_federation.py b/tests/federation/test_federation.py index 938b57bec9..51308ca358 100644 --- a/tests/federation/test_federation.py +++ b/tests/federation/test_federation.py @@ -87,7 +87,7 @@ class FederationTestCase(unittest.TestCase): # Empty context initially (code, response) = yield self.mock_resource.trigger("GET", - "/matrix/federation/v1/state/my-context/", None) + "/_matrix/federation/v1/state/my-context/", None) self.assertEquals(200, code) self.assertFalse(response["pdus"]) @@ -112,7 +112,7 @@ class FederationTestCase(unittest.TestCase): ) (code, response) = yield self.mock_resource.trigger("GET", - "/matrix/federation/v1/state/my-context/", None) + "/_matrix/federation/v1/state/my-context/", None) self.assertEquals(200, code) self.assertEquals(1, len(response["pdus"])) @@ -123,7 +123,7 @@ class FederationTestCase(unittest.TestCase): ) (code, response) = yield self.mock_resource.trigger("GET", - "/matrix/federation/v1/pdu/red/abc123def456/", None) + "/_matrix/federation/v1/pdu/red/abc123def456/", None) self.assertEquals(404, code) # Now insert such a PDU @@ -142,7 +142,7 @@ class FederationTestCase(unittest.TestCase): ) (code, response) = yield self.mock_resource.trigger("GET", - "/matrix/federation/v1/pdu/red/abc123def456/", None) + "/_matrix/federation/v1/pdu/red/abc123def456/", None) self.assertEquals(200, code) self.assertEquals(1, len(response["pdus"])) self.assertEquals("m.text", response["pdus"][0]["pdu_type"]) @@ -168,7 +168,7 @@ class FederationTestCase(unittest.TestCase): self.mock_http_client.put_json.assert_called_with( "remote", - path="/matrix/federation/v1/send/1000000/", + path="/_matrix/federation/v1/send/1000000/", data={ "ts": 1000000, "origin": "test", @@ -203,7 +203,7 @@ class FederationTestCase(unittest.TestCase): # MockClock ensures we can guess these timestamps self.mock_http_client.put_json.assert_called_with( "remote", - path="/matrix/federation/v1/send/1000000/", + path="/_matrix/federation/v1/send/1000000/", data={ "origin": "test", "ts": 1000000, @@ -226,7 +226,7 @@ class FederationTestCase(unittest.TestCase): self.federation.register_edu_handler("m.test", recv_observer) yield self.mock_resource.trigger("PUT", - "/matrix/federation/v1/send/1001000/", + "/_matrix/federation/v1/send/1001000/", """{ "origin": "remote", "ts": 1001000, @@ -261,7 +261,7 @@ class FederationTestCase(unittest.TestCase): self.mock_http_client.get_json.assert_called_with( destination="remote", - path="/matrix/federation/v1/query/a-question", + path="/_matrix/federation/v1/query/a-question", args={"one": "1", "two": "2"} ) @@ -273,7 +273,7 @@ class FederationTestCase(unittest.TestCase): self.federation.register_query_handler("a-question", recv_handler) code, response = yield self.mock_resource.trigger("GET", - "/matrix/federation/v1/query/a-question?three=3&four=4", None) + "/_matrix/federation/v1/query/a-question?three=3&four=4", None) self.assertEquals(200, code) self.assertEquals({"another": "response"}, response) diff --git a/tests/handlers/test_presence.py b/tests/handlers/test_presence.py index 0a176bdd44..451e1eaa22 100644 --- a/tests/handlers/test_presence.py +++ b/tests/handlers/test_presence.py @@ -314,7 +314,7 @@ class PresenceInvitesTestCase(unittest.TestCase): put_json = self.mock_http_client.put_json put_json.expect_call_and_return( call("elsewhere", - path="/matrix/federation/v1/send/1000000/", + path="/_matrix/federation/v1/send/1000000/", data=_expect_edu("elsewhere", "m.presence_invite", content={ "observer_user": "@apple:test", @@ -340,7 +340,7 @@ class PresenceInvitesTestCase(unittest.TestCase): put_json = self.mock_http_client.put_json put_json.expect_call_and_return( call("elsewhere", - path="/matrix/federation/v1/send/1000000/", + path="/_matrix/federation/v1/send/1000000/", data=_expect_edu("elsewhere", "m.presence_accept", content={ "observer_user": "@cabbage:elsewhere", @@ -352,7 +352,7 @@ class PresenceInvitesTestCase(unittest.TestCase): ) yield self.mock_federation_resource.trigger("PUT", - "/matrix/federation/v1/send/1000000/", + "/_matrix/federation/v1/send/1000000/", _make_edu_json("elsewhere", "m.presence_invite", content={ "observer_user": "@cabbage:elsewhere", @@ -371,7 +371,7 @@ class PresenceInvitesTestCase(unittest.TestCase): put_json = self.mock_http_client.put_json put_json.expect_call_and_return( call("elsewhere", - path="/matrix/federation/v1/send/1000000/", + path="/_matrix/federation/v1/send/1000000/", data=_expect_edu("elsewhere", "m.presence_deny", content={ "observer_user": "@cabbage:elsewhere", @@ -383,7 +383,7 @@ class PresenceInvitesTestCase(unittest.TestCase): ) yield self.mock_federation_resource.trigger("PUT", - "/matrix/federation/v1/send/1000000/", + "/_matrix/federation/v1/send/1000000/", _make_edu_json("elsewhere", "m.presence_invite", content={ "observer_user": "@cabbage:elsewhere", @@ -397,7 +397,7 @@ class PresenceInvitesTestCase(unittest.TestCase): @defer.inlineCallbacks def test_accepted_remote(self): yield self.mock_federation_resource.trigger("PUT", - "/matrix/federation/v1/send/1000000/", + "/_matrix/federation/v1/send/1000000/", _make_edu_json("elsewhere", "m.presence_accept", content={ "observer_user": "@apple:test", @@ -415,7 +415,7 @@ class PresenceInvitesTestCase(unittest.TestCase): @defer.inlineCallbacks def test_denied_remote(self): yield self.mock_federation_resource.trigger("PUT", - "/matrix/federation/v1/send/1000000/", + "/_matrix/federation/v1/send/1000000/", _make_edu_json("elsewhere", "m.presence_deny", content={ "observer_user": "@apple:test", @@ -720,7 +720,7 @@ class PresencePushTestCase(unittest.TestCase): self.assertEquals(self.event_source.get_current_key(), 0) yield self.mock_federation_resource.trigger("PUT", - "/matrix/federation/v1/send/1000000/", + "/_matrix/federation/v1/send/1000000/", _make_edu_json("elsewhere", "m.presence", content={ "push": [ @@ -836,7 +836,7 @@ class PresencePushTestCase(unittest.TestCase): put_json.expect_call_and_return( call("remote", - path="/matrix/federation/v1/send/1000002/", + path="/_matrix/federation/v1/send/1000002/", data=_expect_edu("remote", "m.presence", content={ "push": [ @@ -1130,7 +1130,7 @@ class PresencePollingTestCase(unittest.TestCase): put_json = self.mock_http_client.put_json put_json.expect_call_and_return( call("remote", - path="/matrix/federation/v1/send/1000000/", + path="/_matrix/federation/v1/send/1000000/", data=_expect_edu("remote", "m.presence", content={ "push": [ @@ -1145,7 +1145,7 @@ class PresencePollingTestCase(unittest.TestCase): ) yield self.mock_federation_resource.trigger("PUT", - "/matrix/federation/v1/send/1000000/", + "/_matrix/federation/v1/send/1000000/", _make_edu_json("remote", "m.presence", content={ "poll": [ "@banana:test" ], @@ -1159,7 +1159,7 @@ class PresencePollingTestCase(unittest.TestCase): self.assertTrue(self.u_banana in self.handler._remote_sendmap) yield self.mock_federation_resource.trigger("PUT", - "/matrix/federation/v1/send/1000001/", + "/_matrix/federation/v1/send/1000001/", _make_edu_json("remote", "m.presence", content={ "unpoll": [ "@banana:test" ], diff --git a/tests/handlers/test_typing.py b/tests/handlers/test_typing.py index 300a6e340a..c3c98074cc 100644 --- a/tests/handlers/test_typing.py +++ b/tests/handlers/test_typing.py @@ -166,7 +166,7 @@ class TypingNotificationsTestCase(unittest.TestCase): put_json = self.mock_http_client.put_json put_json.expect_call_and_return( call("farm", - path="/matrix/federation/v1/send/1000000/", + path="/_matrix/federation/v1/send/1000000/", data=_expect_edu("farm", "m.typing", content={ "room_id": self.room_id, @@ -192,7 +192,7 @@ class TypingNotificationsTestCase(unittest.TestCase): self.room_members = [self.u_apple, self.u_onion] yield self.mock_federation_resource.trigger("PUT", - "/matrix/federation/v1/send/1000000/", + "/_matrix/federation/v1/send/1000000/", _make_edu_json("farm", "m.typing", content={ "room_id": self.room_id, @@ -216,7 +216,7 @@ class TypingNotificationsTestCase(unittest.TestCase): put_json = self.mock_http_client.put_json put_json.expect_call_and_return( call("farm", - path="/matrix/federation/v1/send/1000000/", + path="/_matrix/federation/v1/send/1000000/", data=_expect_edu("farm", "m.typing", content={ "room_id": self.room_id, diff --git a/tests/rest/test_events.py b/tests/rest/test_events.py index 3099a24e8c..1d1336d12d 100644 --- a/tests/rest/test_events.py +++ b/tests/rest/test_events.py @@ -36,7 +36,7 @@ from mock import Mock logging.getLogger().addHandler(logging.NullHandler()) -PATH_PREFIX = "/matrix/client/api/v1" +PATH_PREFIX = "/_matrix/client/api/v1" class EventStreamPaginationApiTestCase(unittest.TestCase): diff --git a/tests/rest/test_presence.py b/tests/rest/test_presence.py index 6631b77973..61692f02c2 100644 --- a/tests/rest/test_presence.py +++ b/tests/rest/test_presence.py @@ -37,7 +37,7 @@ ONLINE = PresenceState.ONLINE myid = "@apple:test" -PATH_PREFIX = "/matrix/client/api/v1" +PATH_PREFIX = "/_matrix/client/api/v1" class JustPresenceHandlers(object): diff --git a/tests/rest/test_profile.py b/tests/rest/test_profile.py index 9bd8dc9783..24456769c7 100644 --- a/tests/rest/test_profile.py +++ b/tests/rest/test_profile.py @@ -26,7 +26,7 @@ from synapse.api.errors import SynapseError, AuthError from synapse.server import HomeServer myid = "@1234ABCD:test" -PATH_PREFIX = "/matrix/client/api/v1" +PATH_PREFIX = "/_matrix/client/api/v1" class ProfileTestCase(unittest.TestCase): """ Tests profile management. """ diff --git a/tests/rest/test_rooms.py b/tests/rest/test_rooms.py index 914dc28f53..b432cf254e 100644 --- a/tests/rest/test_rooms.py +++ b/tests/rest/test_rooms.py @@ -32,7 +32,7 @@ from .utils import RestTestCase from mock import Mock -PATH_PREFIX = "/matrix/client/api/v1" +PATH_PREFIX = "/_matrix/client/api/v1" class RoomPermissionsTestCase(RestTestCase): diff --git a/webclient/components/fileUpload/file-upload-service.js b/webclient/components/fileUpload/file-upload-service.js index 5f01478fd1..699a3cbffc 100644 --- a/webclient/components/fileUpload/file-upload-service.js +++ b/webclient/components/fileUpload/file-upload-service.js @@ -30,7 +30,7 @@ angular.module('mFileUpload', ['matrixService', 'mUtilities']) */ this.uploadFile = function(file) { var deferred = $q.defer(); - console.log("Uploading " + file.name + "... to /matrix/content"); + console.log("Uploading " + file.name + "... to /_matrix/content"); matrixService.uploadContent(file).then( function(response) { var content_url = response.data.content_token; diff --git a/webclient/components/matrix/matrix-service.js b/webclient/components/matrix/matrix-service.js index 746442c280..d509c20b0f 100644 --- a/webclient/components/matrix/matrix-service.js +++ b/webclient/components/matrix/matrix-service.js @@ -38,7 +38,7 @@ angular.module('matrixService', []) // Current version of permanent storage var configVersion = 0; - var prefixPath = "/matrix/client/api/v1"; + var prefixPath = "/_matrix/client/api/v1"; var MAPPING_PREFIX = "alias_for_"; var doRequest = function(method, path, params, data, $httpParams) { @@ -168,7 +168,7 @@ angular.module('matrixService', []) // Retrieves the room ID corresponding to a room alias resolveRoomAlias:function(room_alias) { - var path = "/matrix/client/api/v1/directory/room/$room_alias"; + var path = "/_matrix/client/api/v1/directory/room/$room_alias"; room_alias = encodeURIComponent(room_alias); path = path.replace("$room_alias", room_alias); @@ -308,7 +308,7 @@ angular.module('matrixService', []) // hit the Identity Server for a 3PID request. linkEmail: function(email, clientSecret, sendAttempt) { - var path = "/matrix/identity/api/v1/validate/email/requestToken" + var path = "/_matrix/identity/api/v1/validate/email/requestToken" var data = "clientSecret="+clientSecret+"&email=" + encodeURIComponent(email)+"&sendAttempt="+sendAttempt; var headers = {}; headers["Content-Type"] = "application/x-www-form-urlencoded"; @@ -316,7 +316,7 @@ angular.module('matrixService', []) }, authEmail: function(clientSecret, tokenId, code) { - var path = "/matrix/identity/api/v1/validate/email/submitToken"; + var path = "/_matrix/identity/api/v1/validate/email/submitToken"; var data = "token="+code+"&sid="+tokenId+"&clientSecret="+clientSecret; var headers = {}; headers["Content-Type"] = "application/x-www-form-urlencoded"; @@ -324,7 +324,7 @@ angular.module('matrixService', []) }, bindEmail: function(userId, tokenId, clientSecret) { - var path = "/matrix/identity/api/v1/3pid/bind"; + var path = "/_matrix/identity/api/v1/3pid/bind"; var data = "mxid="+encodeURIComponent(userId)+"&sid="+tokenId+"&clientSecret="+clientSecret; var headers = {}; headers["Content-Type"] = "application/x-www-form-urlencoded"; @@ -332,7 +332,7 @@ angular.module('matrixService', []) }, uploadContent: function(file) { - var path = "/matrix/content"; + var path = "/_matrix/content"; var headers = { "Content-Type": undefined // undefined means angular will figure it out }; |