summary refs log tree commit diff
path: root/synapse/appservice/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/appservice/api.py')
-rw-r--r--synapse/appservice/api.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/synapse/appservice/api.py b/synapse/appservice/api.py
index d96caf7f58..9cce4e0973 100644
--- a/synapse/appservice/api.py
+++ b/synapse/appservice/api.py
@@ -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
+        ]
+