Name 'user_rooms_intersect' transaction

pull/105/head
Erik Johnston 2015-01-06 14:44:27 +00:00
parent 76ec154e95
commit 96707ed718
1 changed files with 18 additions and 16 deletions

View File

@ -239,11 +239,11 @@ class RoomMemberStore(SQLBaseStore):
results = self._parse_events_txn(txn, rows)
return results
@defer.inlineCallbacks
def user_rooms_intersect(self, user_id_list):
""" Checks whether all the users whose IDs are given in a list share a
room.
"""
def interaction(txn):
user_list_clause = " OR ".join(["m.user_id = ?"] * len(user_id_list))
sql = (
"SELECT m.room_id FROM room_memberships as m "
@ -259,6 +259,8 @@ class RoomMemberStore(SQLBaseStore):
args = list(user_id_list)
args.append(len(user_id_list))
rows = yield self._execute(None, sql, *args)
txn.execute(sql, args)
defer.returnValue(len(rows) > 0)
return len(txn.fetchall()) > 0
return self.runInteraction("user_rooms_intersect", interaction)