Store the room version in EventBuilder

This commit is contained in:
Richard van der Hoff 2020-01-29 17:55:48 +00:00
parent 184303b865
commit ef6bdafb29
2 changed files with 9 additions and 7 deletions

View File

@ -23,6 +23,7 @@ from synapse.api.room_versions import (
KNOWN_EVENT_FORMAT_VERSIONS, KNOWN_EVENT_FORMAT_VERSIONS,
KNOWN_ROOM_VERSIONS, KNOWN_ROOM_VERSIONS,
EventFormatVersions, EventFormatVersions,
RoomVersion,
) )
from synapse.crypto.event_signing import add_hashes_and_signatures from synapse.crypto.event_signing import add_hashes_and_signatures
from synapse.types import EventID from synapse.types import EventID
@ -40,7 +41,7 @@ class EventBuilder(object):
content/unsigned/internal_metadata fields are still mutable) content/unsigned/internal_metadata fields are still mutable)
Attributes: Attributes:
format_version (int): Event format version room_version: Version of the target room
room_id (str) room_id (str)
type (str) type (str)
sender (str) sender (str)
@ -63,7 +64,7 @@ class EventBuilder(object):
_hostname = attr.ib() _hostname = attr.ib()
_signing_key = attr.ib() _signing_key = attr.ib()
format_version = attr.ib() room_version = attr.ib(type=RoomVersion)
room_id = attr.ib() room_id = attr.ib()
type = attr.ib() type = attr.ib()
@ -108,7 +109,8 @@ class EventBuilder(object):
) )
auth_ids = yield self._auth.compute_auth_events(self, state_ids) auth_ids = yield self._auth.compute_auth_events(self, state_ids)
if self.format_version == EventFormatVersions.V1: format_version = self.room_version.event_format
if format_version == EventFormatVersions.V1:
auth_events = yield self._store.add_event_hashes(auth_ids) auth_events = yield self._store.add_event_hashes(auth_ids)
prev_events = yield self._store.add_event_hashes(prev_event_ids) prev_events = yield self._store.add_event_hashes(prev_event_ids)
else: else:
@ -148,7 +150,7 @@ class EventBuilder(object):
clock=self._clock, clock=self._clock,
hostname=self._hostname, hostname=self._hostname,
signing_key=self._signing_key, signing_key=self._signing_key,
format_version=self.format_version, format_version=format_version,
event_dict=event_dict, event_dict=event_dict,
internal_metadata_dict=self.internal_metadata.get_dict(), internal_metadata_dict=self.internal_metadata.get_dict(),
) )
@ -201,7 +203,7 @@ class EventBuilderFactory(object):
clock=self.clock, clock=self.clock,
hostname=self.hostname, hostname=self.hostname,
signing_key=self.signing_key, signing_key=self.signing_key,
format_version=room_version.event_format, room_version=room_version,
type=key_values["type"], type=key_values["type"],
state_key=key_values.get("state_key"), state_key=key_values.get("state_key"),
room_id=key_values["room_id"], room_id=key_values["room_id"],

View File

@ -19,7 +19,7 @@ from mock import Mock, call
from signedjson.key import generate_signing_key from signedjson.key import generate_signing_key
from synapse.api.constants import EventTypes, Membership, PresenceState from synapse.api.constants import EventTypes, Membership, PresenceState
from synapse.events import room_version_to_event_format from synapse.api.room_versions import KNOWN_ROOM_VERSIONS
from synapse.events.builder import EventBuilder from synapse.events.builder import EventBuilder
from synapse.handlers.presence import ( from synapse.handlers.presence import (
EXTERNAL_PROCESS_EXPIRY, EXTERNAL_PROCESS_EXPIRY,
@ -597,7 +597,7 @@ class PresenceJoinTestCase(unittest.HomeserverTestCase):
clock=self.clock, clock=self.clock,
hostname=hostname, hostname=hostname,
signing_key=self.random_signing_key, signing_key=self.random_signing_key,
format_version=room_version_to_event_format(room_version), room_version=KNOWN_ROOM_VERSIONS[room_version],
room_id=room_id, room_id=room_id,
type=EventTypes.Member, type=EventTypes.Member,
sender=user_id, sender=user_id,