Actually query over AS API for 3PE lookup metadata
This commit is contained in:
parent
8e1ed09dff
commit
5474824975
|
@ -52,6 +52,13 @@ class ApplicationServiceApi(SimpleHttpClient):
|
||||||
pushing.
|
pushing.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
PROTOCOL_META = {
|
||||||
|
# TODO(paul): Declare kinds of metadata in here
|
||||||
|
"gitter": {
|
||||||
|
"user_fields": ["username"],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
def __init__(self, hs):
|
def __init__(self, hs):
|
||||||
super(ApplicationServiceApi, self).__init__(hs)
|
super(ApplicationServiceApi, self).__init__(hs)
|
||||||
self.clock = hs.get_clock()
|
self.clock = hs.get_clock()
|
||||||
|
@ -131,6 +138,19 @@ class ApplicationServiceApi(SimpleHttpClient):
|
||||||
logger.warning("query_3pe to %s threw exception %s", uri, ex)
|
logger.warning("query_3pe to %s threw exception %s", uri, ex)
|
||||||
defer.returnValue([])
|
defer.returnValue([])
|
||||||
|
|
||||||
|
@defer.inlineCallbacks
|
||||||
|
def get_3pe_protocol(self, service, protocol):
|
||||||
|
# TODO: cache
|
||||||
|
uri = "%s/thirdparty/protocol/%s" % (service.url, urllib.quote(protocol))
|
||||||
|
try:
|
||||||
|
response = yield self.get_json(uri, {})
|
||||||
|
defer.returnValue(response)
|
||||||
|
except Exception as ex:
|
||||||
|
logger.warning("query_3pe_protocol to %s threw exception %s",
|
||||||
|
uri, ex
|
||||||
|
)
|
||||||
|
defer.returnValue({})
|
||||||
|
|
||||||
@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)
|
||||||
|
|
|
@ -37,13 +37,6 @@ def log_failure(failure):
|
||||||
|
|
||||||
class ApplicationServicesHandler(object):
|
class ApplicationServicesHandler(object):
|
||||||
|
|
||||||
PROTOCOL_META = {
|
|
||||||
# TODO(paul): Declare kinds of metadata in here
|
|
||||||
"gitter": {
|
|
||||||
"user_fields": ["username"],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def __init__(self, hs):
|
def __init__(self, hs):
|
||||||
self.store = hs.get_datastore()
|
self.store = hs.get_datastore()
|
||||||
self.is_mine_id = hs.is_mine_id
|
self.is_mine_id = hs.is_mine_id
|
||||||
|
@ -195,12 +188,7 @@ class ApplicationServicesHandler(object):
|
||||||
protocols = {}
|
protocols = {}
|
||||||
for s in services:
|
for s in services:
|
||||||
for p in s.protocols:
|
for p in s.protocols:
|
||||||
if p in self.PROTOCOL_META:
|
protocols[p] = yield self.appservice_api.get_3pe_protocol(s, p)
|
||||||
protocols[p] = self.PROTOCOL_META[p]
|
|
||||||
else:
|
|
||||||
# We don't know any metadata for it, but we'd best at least
|
|
||||||
# still declare that we know it exists
|
|
||||||
protocols[p] = {}
|
|
||||||
|
|
||||||
self.supported_protocols = protocols
|
self.supported_protocols = protocols
|
||||||
defer.returnValue(protocols)
|
defer.returnValue(protocols)
|
||||||
|
|
Loading…
Reference in New Issue