summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Baker <dave@matrix.org>2015-04-17 17:20:18 +0100
committerDavid Baker <dave@matrix.org>2015-04-17 17:20:18 +0100
commit117f35ac4ac4f8d344ae1efbc629a3f8bc25f459 (patch)
tree3813c1155b09bb49b86976eae884b2e8eae2a3f2
parentpep8 (diff)
downloadsynapse-117f35ac4ac4f8d344ae1efbc629a3f8bc25f459.tar.xz
Add endpoint to get threepids from server
-rw-r--r--synapse/rest/client/v2_alpha/account.py12
-rw-r--r--synapse/storage/registration.py11
2 files changed, 23 insertions, 0 deletions
diff --git a/synapse/rest/client/v2_alpha/account.py b/synapse/rest/client/v2_alpha/account.py
index 6045b016ef..5ac3ac0f71 100644
--- a/synapse/rest/client/v2_alpha/account.py
+++ b/synapse/rest/client/v2_alpha/account.py
@@ -89,6 +89,18 @@ class ThreepidRestServlet(RestServlet):
         self.auth = hs.get_auth()
 
     @defer.inlineCallbacks
+    def on_GET(self, request):
+        yield run_on_reactor()
+
+        auth_user, _ = yield self.auth.get_user_by_req(request)
+
+        threepids = yield self.hs.get_datastore().user_get_threepids(
+            auth_user.to_string()
+        )
+
+        defer.returnValue((200, {'threepids': threepids}))
+
+    @defer.inlineCallbacks
     def on_POST(self, request):
         yield run_on_reactor()
 
diff --git a/synapse/storage/registration.py b/synapse/storage/registration.py
index 8f62e5c6f2..08d60f0817 100644
--- a/synapse/storage/registration.py
+++ b/synapse/storage/registration.py
@@ -186,3 +186,14 @@ class RegistrationStore(SQLBaseStore):
             "validated_at": validated_at,
             "added_at": added_at,
         })
+
+    @defer.inlineCallbacks
+    def user_get_threepids(self, user_id):
+        ret = yield self._simple_select_list(
+            "user_threepids", {
+                "user": user_id
+            },
+            ['medium', 'address', 'validated_at', 'added_at'],
+            'user_get_threepids'
+        )
+        defer.returnValue(ret)
\ No newline at end of file