mirror of
https://github.com/element-hq/synapse.git
synced 2026-05-26 05:24:19 +00:00
Add ClientEvent.state
This commit is contained in:
@@ -429,6 +429,17 @@ class ClientEvent:
|
||||
event: "EventBase"
|
||||
membership: str | None
|
||||
|
||||
@classmethod
|
||||
def state(cls, event: "EventBase") -> "ClientEvent":
|
||||
"""Wrap a state event with no per-user membership annotation.
|
||||
|
||||
The event must be a state event (i.e. have a state_key).
|
||||
"""
|
||||
assert event.is_state(), (
|
||||
f"ClientEvent.state() called with non-state event {event.event_id}"
|
||||
)
|
||||
return cls(event=event, membership=None)
|
||||
|
||||
|
||||
@attr.s(slots=True, frozen=True, auto_attribs=True)
|
||||
class SerializeEventConfig:
|
||||
|
||||
@@ -252,10 +252,7 @@ class InitialSyncHandler:
|
||||
}
|
||||
|
||||
d["state"] = await self._event_serializer.serialize_events(
|
||||
[
|
||||
ClientEvent(event=e, membership=None)
|
||||
for e in current_state.values()
|
||||
],
|
||||
[ClientEvent.state(e) for e in current_state.values()],
|
||||
time_now=time_now,
|
||||
config=serializer_options,
|
||||
)
|
||||
@@ -418,10 +415,7 @@ class InitialSyncHandler:
|
||||
"state": (
|
||||
# Don't bundle aggregations as this is a deprecated API.
|
||||
await self._event_serializer.serialize_events(
|
||||
[
|
||||
ClientEvent(event=e, membership=None)
|
||||
for e in room_state.values()
|
||||
],
|
||||
[ClientEvent.state(e) for e in room_state.values()],
|
||||
time_now,
|
||||
config=serialize_options,
|
||||
)
|
||||
@@ -447,7 +441,7 @@ class InitialSyncHandler:
|
||||
serialize_options = SerializeEventConfig(requester=requester)
|
||||
# Don't bundle aggregations as this is a deprecated API.
|
||||
state = await self._event_serializer.serialize_events(
|
||||
[ClientEvent(event=e, membership=None) for e in current_state.values()],
|
||||
[ClientEvent.state(e) for e in current_state.values()],
|
||||
time_now,
|
||||
config=serialize_options,
|
||||
)
|
||||
|
||||
@@ -265,7 +265,7 @@ class MessageHandler:
|
||||
room_state = room_state_events[membership_event_id]
|
||||
|
||||
events = await self._event_serializer.serialize_events(
|
||||
[ClientEvent(event=e, membership=None) for e in room_state.values()],
|
||||
[ClientEvent.state(e) for e in room_state.values()],
|
||||
self.clock.time_msec(),
|
||||
config=SerializeEventConfig(requester=requester),
|
||||
)
|
||||
|
||||
@@ -416,7 +416,7 @@ class SearchHandler:
|
||||
if state_results:
|
||||
rooms_cat_res["state"] = {
|
||||
room_id: await self._event_serializer.serialize_events(
|
||||
[ClientEvent(event=e, membership=None) for e in state_events],
|
||||
[ClientEvent.state(e) for e in state_events],
|
||||
time_now,
|
||||
config=serialize_options,
|
||||
)
|
||||
|
||||
@@ -531,7 +531,7 @@ class RoomStateRestServlet(RestServlet):
|
||||
events = await self.store.get_events(event_ids.values())
|
||||
now = self.clock.time_msec()
|
||||
room_state = await self._event_serializer.serialize_events(
|
||||
[ClientEvent(event=e, membership=None) for e in events.values()], now
|
||||
[ClientEvent.state(e) for e in events.values()], now
|
||||
)
|
||||
ret = {"state": room_state}
|
||||
|
||||
@@ -900,7 +900,7 @@ class RoomEventContextServlet(RestServlet):
|
||||
bundle_aggregations=event_context.aggregations,
|
||||
),
|
||||
"state": await self._event_serializer.serialize_events(
|
||||
[ClientEvent(event=e, membership=None) for e in event_context.state],
|
||||
[ClientEvent.state(e) for e in event_context.state],
|
||||
time_now,
|
||||
),
|
||||
"start": event_context.start,
|
||||
|
||||
@@ -287,7 +287,7 @@ class RoomStateEventRestServlet(RestServlet):
|
||||
|
||||
if format == "event":
|
||||
event = await self._event_serializer.serialize_event(
|
||||
ClientEvent(event=data, membership=None),
|
||||
ClientEvent.state(data),
|
||||
self.clock.time_msec(),
|
||||
config=SerializeEventConfig(
|
||||
event_format=format_event_for_client_v2,
|
||||
@@ -867,7 +867,7 @@ async def encode_messages_response(
|
||||
serialized_result[
|
||||
"state"
|
||||
] = await serialize_deps.event_serializer.serialize_events(
|
||||
[ClientEvent(event=e, membership=None) for e in get_messages_result.state],
|
||||
[ClientEvent.state(e) for e in get_messages_result.state],
|
||||
time_now,
|
||||
config=serialize_options,
|
||||
)
|
||||
@@ -1175,7 +1175,7 @@ class RoomEventContextServlet(RestServlet):
|
||||
config=serializer_options,
|
||||
),
|
||||
"state": await self._event_serializer.serialize_events(
|
||||
[ClientEvent(event=e, membership=None) for e in event_context.state],
|
||||
[ClientEvent.state(e) for e in event_context.state],
|
||||
time_now,
|
||||
config=serializer_options,
|
||||
),
|
||||
|
||||
@@ -600,7 +600,7 @@ class SyncRestServlet(RestServlet):
|
||||
)
|
||||
|
||||
serialized_state = await self._event_serializer.serialize_events(
|
||||
[ClientEvent(event=e, membership=None) for e in state_events],
|
||||
[ClientEvent.state(e) for e in state_events],
|
||||
time_now,
|
||||
config=serialize_options,
|
||||
)
|
||||
@@ -990,10 +990,7 @@ class SlidingSyncRestServlet(RestServlet):
|
||||
):
|
||||
serialized_required_state = (
|
||||
await self.event_serializer.serialize_events(
|
||||
[
|
||||
ClientEvent(event=e, membership=None)
|
||||
for e in room_result.required_state
|
||||
],
|
||||
[ClientEvent.state(e) for e in room_result.required_state],
|
||||
time_now,
|
||||
config=serialize_options,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user