forked from MirrorHub/synapse
Merge pull request #944 from matrix-org/rav/devices_returns_list
make /devices return a list
This commit is contained in:
commit
68a92afcff
2 changed files with 12 additions and 9 deletions
|
@ -79,17 +79,17 @@ class DeviceHandler(BaseHandler):
|
||||||
Args:
|
Args:
|
||||||
user_id (str):
|
user_id (str):
|
||||||
Returns:
|
Returns:
|
||||||
defer.Deferred: dict[str, dict[str, X]]: map from device_id to
|
defer.Deferred: list[dict[str, X]]: info on each device
|
||||||
info on the device
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
devices = yield self.store.get_devices_by_user(user_id)
|
device_map = yield self.store.get_devices_by_user(user_id)
|
||||||
|
|
||||||
ips = yield self.store.get_last_client_ip_by_device(
|
ips = yield self.store.get_last_client_ip_by_device(
|
||||||
devices=((user_id, device_id) for device_id in devices.keys())
|
devices=((user_id, device_id) for device_id in device_map.keys())
|
||||||
)
|
)
|
||||||
|
|
||||||
for device in devices.values():
|
devices = device_map.values()
|
||||||
|
for device in devices:
|
||||||
_update_device_from_client_ips(device, ips)
|
_update_device_from_client_ips(device, ips)
|
||||||
|
|
||||||
defer.returnValue(devices)
|
defer.returnValue(devices)
|
||||||
|
|
|
@ -84,28 +84,31 @@ class DeviceTestCase(unittest.TestCase):
|
||||||
yield self._record_users()
|
yield self._record_users()
|
||||||
|
|
||||||
res = yield self.handler.get_devices_by_user(user1)
|
res = yield self.handler.get_devices_by_user(user1)
|
||||||
self.assertEqual(3, len(res.keys()))
|
self.assertEqual(3, len(res))
|
||||||
|
device_map = {
|
||||||
|
d["device_id"]: d for d in res
|
||||||
|
}
|
||||||
self.assertDictContainsSubset({
|
self.assertDictContainsSubset({
|
||||||
"user_id": user1,
|
"user_id": user1,
|
||||||
"device_id": "xyz",
|
"device_id": "xyz",
|
||||||
"display_name": "display 0",
|
"display_name": "display 0",
|
||||||
"last_seen_ip": None,
|
"last_seen_ip": None,
|
||||||
"last_seen_ts": None,
|
"last_seen_ts": None,
|
||||||
}, res["xyz"])
|
}, device_map["xyz"])
|
||||||
self.assertDictContainsSubset({
|
self.assertDictContainsSubset({
|
||||||
"user_id": user1,
|
"user_id": user1,
|
||||||
"device_id": "fco",
|
"device_id": "fco",
|
||||||
"display_name": "display 1",
|
"display_name": "display 1",
|
||||||
"last_seen_ip": "ip1",
|
"last_seen_ip": "ip1",
|
||||||
"last_seen_ts": 1000000,
|
"last_seen_ts": 1000000,
|
||||||
}, res["fco"])
|
}, device_map["fco"])
|
||||||
self.assertDictContainsSubset({
|
self.assertDictContainsSubset({
|
||||||
"user_id": user1,
|
"user_id": user1,
|
||||||
"device_id": "abc",
|
"device_id": "abc",
|
||||||
"display_name": "display 2",
|
"display_name": "display 2",
|
||||||
"last_seen_ip": "ip3",
|
"last_seen_ip": "ip3",
|
||||||
"last_seen_ts": 3000000,
|
"last_seen_ts": 3000000,
|
||||||
}, res["abc"])
|
}, device_map["abc"])
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def test_get_device(self):
|
def test_get_device(self):
|
||||||
|
|
Loading…
Reference in a new issue