Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Rename shared_rooms to mutual_rooms (#12036)
Browse files Browse the repository at this point in the history
Co-authored-by: reivilibre <olivier@librepush.net>
  • Loading branch information
ShadowJonathan and reivilibre committed Mar 23, 2022
1 parent 831d479 commit 516d092
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 25 deletions.
1 change: 1 addition & 0 deletions changelog.d/12036.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Rename `shared_rooms` to `mutual_rooms` (MSC2666), as per proposal changes.
4 changes: 2 additions & 2 deletions synapse/rest/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
knock,
login as v1_login,
logout,
mutual_rooms,
notifications,
openid,
password_policy,
Expand All @@ -49,7 +50,6 @@
room_keys,
room_upgrade_rest_servlet,
sendtodevice,
shared_rooms,
sync,
tags,
thirdparty,
Expand Down Expand Up @@ -132,4 +132,4 @@ def register_servlets(client_resource: HttpServer, hs: "HomeServer") -> None:
admin.register_servlets_for_client_rest_resource(hs, client_resource)

# unstable
shared_rooms.register_servlets(hs, client_resource)
mutual_rooms.register_servlets(hs, client_resource)
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@
logger = logging.getLogger(__name__)


class UserSharedRoomsServlet(RestServlet):
class UserMutualRoomsServlet(RestServlet):
"""
GET /uk.half-shot.msc2666/user/shared_rooms/{user_id} HTTP/1.1
GET /uk.half-shot.msc2666/user/mutual_rooms/{user_id} HTTP/1.1
"""

PATTERNS = client_patterns(
"/uk.half-shot.msc2666/user/shared_rooms/(?P<user_id>[^/]*)",
"/uk.half-shot.msc2666/user/mutual_rooms/(?P<user_id>[^/]*)",
releases=(), # This is an unstable feature
)

Expand Down Expand Up @@ -64,12 +64,13 @@ async def on_GET(
msg="You cannot request a list of shared rooms with yourself",
errcode=Codes.FORBIDDEN,
)
rooms = await self.store.get_shared_rooms_for_users(

rooms = await self.store.get_mutual_rooms_for_users(
requester.user.to_string(), user_id
)

return 200, {"joined": list(rooms)}


def register_servlets(hs: "HomeServer", http_server: HttpServer) -> None:
UserSharedRoomsServlet(hs).register(http_server)
UserMutualRoomsServlet(hs).register(http_server)
6 changes: 3 additions & 3 deletions synapse/storage/databases/main/user_directory.py
Original file line number Diff line number Diff line change
Expand Up @@ -730,7 +730,7 @@ async def get_user_dir_rooms_user_is_in(self, user_id: str) -> List[str]:
users.update(rows)
return list(users)

async def get_shared_rooms_for_users(
async def get_mutual_rooms_for_users(
self, user_id: str, other_user_id: str
) -> Set[str]:
"""
Expand All @@ -744,7 +744,7 @@ async def get_shared_rooms_for_users(
A set of room ID's that the users share.
"""

def _get_shared_rooms_for_users_txn(
def _get_mutual_rooms_for_users_txn(
txn: LoggingTransaction,
) -> List[Dict[str, str]]:
txn.execute(
Expand All @@ -768,7 +768,7 @@ def _get_shared_rooms_for_users_txn(
return rows

rows = await self.db_pool.runInteraction(
"get_shared_rooms_for_users", _get_shared_rooms_for_users_txn
"get_mutual_rooms_for_users", _get_mutual_rooms_for_users_txn
)

return {row["room_id"] for row in rows}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,24 @@
from twisted.test.proto_helpers import MemoryReactor

import synapse.rest.admin
from synapse.rest.client import login, room, shared_rooms
from synapse.rest.client import login, mutual_rooms, room
from synapse.server import HomeServer
from synapse.util import Clock

from tests import unittest
from tests.server import FakeChannel


class UserSharedRoomsTest(unittest.HomeserverTestCase):
class UserMutualRoomsTest(unittest.HomeserverTestCase):
"""
Tests the UserSharedRoomsServlet.
Tests the UserMutualRoomsServlet.
"""

servlets = [
login.register_servlets,
synapse.rest.admin.register_servlets_for_client_rest_resource,
room.register_servlets,
shared_rooms.register_servlets,
mutual_rooms.register_servlets,
]

def make_homeserver(self, reactor: MemoryReactor, clock: Clock) -> HomeServer:
Expand All @@ -43,10 +43,10 @@ def prepare(self, reactor: MemoryReactor, clock: Clock, hs: HomeServer) -> None:
self.store = hs.get_datastores().main
self.handler = hs.get_user_directory_handler()

def _get_shared_rooms(self, token: str, other_user: str) -> FakeChannel:
def _get_mutual_rooms(self, token: str, other_user: str) -> FakeChannel:
return self.make_request(
"GET",
"/_matrix/client/unstable/uk.half-shot.msc2666/user/shared_rooms/%s"
"/_matrix/client/unstable/uk.half-shot.msc2666/user/mutual_rooms/%s"
% other_user,
access_token=token,
)
Expand All @@ -56,14 +56,14 @@ def test_shared_room_list_public(self) -> None:
A room should show up in the shared list of rooms between two users
if it is public.
"""
self._check_shared_rooms_with(room_one_is_public=True, room_two_is_public=True)
self._check_mutual_rooms_with(room_one_is_public=True, room_two_is_public=True)

def test_shared_room_list_private(self) -> None:
"""
A room should show up in the shared list of rooms between two users
if it is private.
"""
self._check_shared_rooms_with(
self._check_mutual_rooms_with(
room_one_is_public=False, room_two_is_public=False
)

Expand All @@ -72,9 +72,9 @@ def test_shared_room_list_mixed(self) -> None:
The shared room list between two users should contain both public and private
rooms.
"""
self._check_shared_rooms_with(room_one_is_public=True, room_two_is_public=False)
self._check_mutual_rooms_with(room_one_is_public=True, room_two_is_public=False)

def _check_shared_rooms_with(
def _check_mutual_rooms_with(
self, room_one_is_public: bool, room_two_is_public: bool
) -> None:
"""Checks that shared public or private rooms between two users appear in
Expand All @@ -94,7 +94,7 @@ def _check_shared_rooms_with(

# Check shared rooms from user1's perspective.
# We should see the one room in common
channel = self._get_shared_rooms(u1_token, u2)
channel = self._get_mutual_rooms(u1_token, u2)
self.assertEqual(200, channel.code, channel.result)
self.assertEqual(len(channel.json_body["joined"]), 1)
self.assertEqual(channel.json_body["joined"][0], room_id_one)
Expand All @@ -107,7 +107,7 @@ def _check_shared_rooms_with(
self.helper.join(room_id_two, user=u2, tok=u2_token)

# Check shared rooms again. We should now see both rooms.
channel = self._get_shared_rooms(u1_token, u2)
channel = self._get_mutual_rooms(u1_token, u2)
self.assertEqual(200, channel.code, channel.result)
self.assertEqual(len(channel.json_body["joined"]), 2)
for room_id_id in channel.json_body["joined"]:
Expand All @@ -128,19 +128,19 @@ def test_shared_room_list_after_leave(self) -> None:
self.helper.join(room, user=u2, tok=u2_token)

# Assert user directory is not empty
channel = self._get_shared_rooms(u1_token, u2)
channel = self._get_mutual_rooms(u1_token, u2)
self.assertEqual(200, channel.code, channel.result)
self.assertEqual(len(channel.json_body["joined"]), 1)
self.assertEqual(channel.json_body["joined"][0], room)

self.helper.leave(room, user=u1, tok=u1_token)

# Check user1's view of shared rooms with user2
channel = self._get_shared_rooms(u1_token, u2)
channel = self._get_mutual_rooms(u1_token, u2)
self.assertEqual(200, channel.code, channel.result)
self.assertEqual(len(channel.json_body["joined"]), 0)

# Check user2's view of shared rooms with user1
channel = self._get_shared_rooms(u2_token, u1)
channel = self._get_mutual_rooms(u2_token, u1)
self.assertEqual(200, channel.code, channel.result)
self.assertEqual(len(channel.json_body["joined"]), 0)

0 comments on commit 516d092

Please sign in to comment.