Thread 3PU lookup through as far as the AS API object; which currently noöps it

pull/1026/head
Paul "LeoNerd" Evans 2016-08-17 13:15:06 +01:00
parent e3e3fbc23a
commit fa87c981e1
3 changed files with 33 additions and 2 deletions

View File

@ -71,6 +71,9 @@ class ApplicationServiceApi(SimpleHttpClient):
logger.warning("query_alias to %s threw exception %s", uri, ex) logger.warning("query_alias to %s threw exception %s", uri, ex)
defer.returnValue(False) defer.returnValue(False)
def query_3pu(self, service, protocol, fields):
return False
@defer.inlineCallbacks @defer.inlineCallbacks
def push_bulk(self, service, events, txn_id=None): def push_bulk(self, service, events, txn_id=None):
events = self._serialize(events) events = self._serialize(events)

View File

@ -120,6 +120,21 @@ class ApplicationServicesHandler(object):
) )
defer.returnValue(result) defer.returnValue(result)
@defer.inlineCallbacks
def query_3pu(self, protocol, fields):
services = yield self._get_services_for_3pn(protocol)
# TODO(paul): scattergather
results = []
for service in services:
result = yield self.appservice_api.query_3pu(
service, protocol, fields
)
if result:
results.append(result)
defer.returnValue(results)
@defer.inlineCallbacks @defer.inlineCallbacks
def _get_services_for_event(self, event, restrict_to="", alias_list=None): def _get_services_for_event(self, event, restrict_to="", alias_list=None):
"""Retrieve a list of application services interested in this event. """Retrieve a list of application services interested in this event.
@ -163,6 +178,12 @@ class ApplicationServicesHandler(object):
] ]
defer.returnValue(interested_list) defer.returnValue(interested_list)
@defer.inlineCallbacks
def _get_services_for_3pn(self, protocol):
# TODO(paul): Filter by protocol
services = yield self.store.get_app_services()
defer.returnValue(services)
@defer.inlineCallbacks @defer.inlineCallbacks
def _is_unknown_user(self, user_id): def _is_unknown_user(self, user_id):
if not self.is_mine_id(user_id): if not self.is_mine_id(user_id):

View File

@ -16,6 +16,8 @@
import logging import logging
from twisted.internet import defer
from synapse.http.servlet import RestServlet from synapse.http.servlet import RestServlet
from ._base import client_v2_patterns from ._base import client_v2_patterns
@ -28,10 +30,15 @@ class ThirdPartyUserServlet(RestServlet):
def __init__(self, hs): def __init__(self, hs):
super(ThirdPartyUserServlet, self).__init__() super(ThirdPartyUserServlet, self).__init__()
pass
self.appservice_handler = hs.get_application_service_handler()
@defer.inlineCallbacks
def on_GET(self, request, protocol): def on_GET(self, request, protocol):
return (200, {"TODO":"TODO"}) fields = {} # TODO
results = yield self.appservice_handler.query_3pu(protocol, fields)
defer.returnValue((200, results))
def register_servlets(hs, http_server): def register_servlets(hs, http_server):