mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 10:56:06 -04:00
Port rest.client.v2
This commit is contained in:
parent
af5d0ebc72
commit
9c41ba4c5f
23 changed files with 361 additions and 505 deletions
|
@ -18,8 +18,6 @@ import logging
|
|||
|
||||
from canonicaljson import json
|
||||
|
||||
from twisted.internet import defer
|
||||
|
||||
from synapse.api.constants import PresenceState
|
||||
from synapse.api.errors import Codes, StoreError, SynapseError
|
||||
from synapse.api.filtering import DEFAULT_FILTER_COLLECTION, FilterCollection
|
||||
|
@ -87,8 +85,7 @@ class SyncRestServlet(RestServlet):
|
|||
self._server_notices_sender = hs.get_server_notices_sender()
|
||||
self._event_serializer = hs.get_event_client_serializer()
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def on_GET(self, request):
|
||||
async def on_GET(self, request):
|
||||
if b"from" in request.args:
|
||||
# /events used to use 'from', but /sync uses 'since'.
|
||||
# Lets be helpful and whine if we see a 'from'.
|
||||
|
@ -96,7 +93,7 @@ class SyncRestServlet(RestServlet):
|
|||
400, "'from' is not a valid query parameter. Did you mean 'since'?"
|
||||
)
|
||||
|
||||
requester = yield self.auth.get_user_by_req(request, allow_guest=True)
|
||||
requester = await self.auth.get_user_by_req(request, allow_guest=True)
|
||||
user = requester.user
|
||||
device_id = requester.device_id
|
||||
|
||||
|
@ -138,7 +135,7 @@ class SyncRestServlet(RestServlet):
|
|||
filter_collection = FilterCollection(filter_object)
|
||||
else:
|
||||
try:
|
||||
filter_collection = yield self.filtering.get_user_filter(
|
||||
filter_collection = await self.filtering.get_user_filter(
|
||||
user.localpart, filter_id
|
||||
)
|
||||
except StoreError as err:
|
||||
|
@ -161,20 +158,20 @@ class SyncRestServlet(RestServlet):
|
|||
since_token = None
|
||||
|
||||
# send any outstanding server notices to the user.
|
||||
yield self._server_notices_sender.on_user_syncing(user.to_string())
|
||||
await self._server_notices_sender.on_user_syncing(user.to_string())
|
||||
|
||||
affect_presence = set_presence != PresenceState.OFFLINE
|
||||
|
||||
if affect_presence:
|
||||
yield self.presence_handler.set_state(
|
||||
await self.presence_handler.set_state(
|
||||
user, {"presence": set_presence}, True
|
||||
)
|
||||
|
||||
context = yield self.presence_handler.user_syncing(
|
||||
context = await self.presence_handler.user_syncing(
|
||||
user.to_string(), affect_presence=affect_presence
|
||||
)
|
||||
with context:
|
||||
sync_result = yield self.sync_handler.wait_for_sync_for_user(
|
||||
sync_result = await self.sync_handler.wait_for_sync_for_user(
|
||||
sync_config,
|
||||
since_token=since_token,
|
||||
timeout=timeout,
|
||||
|
@ -182,14 +179,13 @@ class SyncRestServlet(RestServlet):
|
|||
)
|
||||
|
||||
time_now = self.clock.time_msec()
|
||||
response_content = yield self.encode_response(
|
||||
response_content = await self.encode_response(
|
||||
time_now, sync_result, requester.access_token_id, filter_collection
|
||||
)
|
||||
|
||||
return 200, response_content
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def encode_response(self, time_now, sync_result, access_token_id, filter):
|
||||
async def encode_response(self, time_now, sync_result, access_token_id, filter):
|
||||
if filter.event_format == "client":
|
||||
event_formatter = format_event_for_client_v2_without_room_id
|
||||
elif filter.event_format == "federation":
|
||||
|
@ -197,7 +193,7 @@ class SyncRestServlet(RestServlet):
|
|||
else:
|
||||
raise Exception("Unknown event format %s" % (filter.event_format,))
|
||||
|
||||
joined = yield self.encode_joined(
|
||||
joined = await self.encode_joined(
|
||||
sync_result.joined,
|
||||
time_now,
|
||||
access_token_id,
|
||||
|
@ -205,11 +201,11 @@ class SyncRestServlet(RestServlet):
|
|||
event_formatter,
|
||||
)
|
||||
|
||||
invited = yield self.encode_invited(
|
||||
invited = await self.encode_invited(
|
||||
sync_result.invited, time_now, access_token_id, event_formatter
|
||||
)
|
||||
|
||||
archived = yield self.encode_archived(
|
||||
archived = await self.encode_archived(
|
||||
sync_result.archived,
|
||||
time_now,
|
||||
access_token_id,
|
||||
|
@ -250,8 +246,9 @@ class SyncRestServlet(RestServlet):
|
|||
]
|
||||
}
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def encode_joined(self, rooms, time_now, token_id, event_fields, event_formatter):
|
||||
async def encode_joined(
|
||||
self, rooms, time_now, token_id, event_fields, event_formatter
|
||||
):
|
||||
"""
|
||||
Encode the joined rooms in a sync result
|
||||
|
||||
|
@ -272,7 +269,7 @@ class SyncRestServlet(RestServlet):
|
|||
"""
|
||||
joined = {}
|
||||
for room in rooms:
|
||||
joined[room.room_id] = yield self.encode_room(
|
||||
joined[room.room_id] = await self.encode_room(
|
||||
room,
|
||||
time_now,
|
||||
token_id,
|
||||
|
@ -283,8 +280,7 @@ class SyncRestServlet(RestServlet):
|
|||
|
||||
return joined
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def encode_invited(self, rooms, time_now, token_id, event_formatter):
|
||||
async def encode_invited(self, rooms, time_now, token_id, event_formatter):
|
||||
"""
|
||||
Encode the invited rooms in a sync result
|
||||
|
||||
|
@ -304,7 +300,7 @@ class SyncRestServlet(RestServlet):
|
|||
"""
|
||||
invited = {}
|
||||
for room in rooms:
|
||||
invite = yield self._event_serializer.serialize_event(
|
||||
invite = await self._event_serializer.serialize_event(
|
||||
room.invite,
|
||||
time_now,
|
||||
token_id=token_id,
|
||||
|
@ -319,8 +315,9 @@ class SyncRestServlet(RestServlet):
|
|||
|
||||
return invited
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def encode_archived(self, rooms, time_now, token_id, event_fields, event_formatter):
|
||||
async def encode_archived(
|
||||
self, rooms, time_now, token_id, event_fields, event_formatter
|
||||
):
|
||||
"""
|
||||
Encode the archived rooms in a sync result
|
||||
|
||||
|
@ -341,7 +338,7 @@ class SyncRestServlet(RestServlet):
|
|||
"""
|
||||
joined = {}
|
||||
for room in rooms:
|
||||
joined[room.room_id] = yield self.encode_room(
|
||||
joined[room.room_id] = await self.encode_room(
|
||||
room,
|
||||
time_now,
|
||||
token_id,
|
||||
|
@ -352,8 +349,7 @@ class SyncRestServlet(RestServlet):
|
|||
|
||||
return joined
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def encode_room(
|
||||
async def encode_room(
|
||||
self, room, time_now, token_id, joined, only_fields, event_formatter
|
||||
):
|
||||
"""
|
||||
|
@ -401,8 +397,8 @@ class SyncRestServlet(RestServlet):
|
|||
event.room_id,
|
||||
)
|
||||
|
||||
serialized_state = yield serialize(state_events)
|
||||
serialized_timeline = yield serialize(timeline_events)
|
||||
serialized_state = await serialize(state_events)
|
||||
serialized_timeline = await serialize(timeline_events)
|
||||
|
||||
account_data = room.account_data
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue