Serialize events before sending to ASes

This commit is contained in:
Kegan Dougal 2015-02-05 13:42:35 +00:00
parent 131e036402
commit 0613666d9c

View File

@ -16,6 +16,7 @@ from twisted.internet import defer
from synapse.api.errors import CodeMessageException
from synapse.http.client import SimpleHttpClient
from synapse.events.utils import serialize_event
import logging
import urllib
@ -30,6 +31,7 @@ class ApplicationServiceApi(SimpleHttpClient):
def __init__(self, hs):
super(ApplicationServiceApi, self).__init__(hs)
self.clock = hs.get_clock()
@defer.inlineCallbacks
def query_user(self, service, user_id):
@ -72,6 +74,8 @@ class ApplicationServiceApi(SimpleHttpClient):
@defer.inlineCallbacks
def push_bulk(self, service, events):
events = self._serialize(events)
uri = service.url + ("/transactions/%s" %
urllib.quote(str(0))) # TODO txn_ids
response = None
@ -98,3 +102,9 @@ class ApplicationServiceApi(SimpleHttpClient):
response = yield self.push_bulk(service, [event])
defer.returnValue(response)
def _serialize(self, events):
time_now = self.clock.time_msec()
return [
serialize_event(e, time_now, as_client_event=True) for e in events
]