aboutsummaryrefslogtreecommitdiff
path: root/syncapi
diff options
context:
space:
mode:
authorkegsay <kegan@matrix.org>2023-05-02 15:03:16 +0100
committerGitHub <noreply@github.com>2023-05-02 15:03:16 +0100
commitf5b3144dc33ddcb2ab161323d422cab257d04b4c (patch)
tree07d3b03944d2529d96c29674a96c3e76a76ae3b9 /syncapi
parent696cbb70b8cc8d663f7bb7c7a5f25cd57ea6803e (diff)
Use PDU not *Event in HeaderedEvent (#3073)
Requires https://github.com/matrix-org/gomatrixserverlib/pull/376 This has numerous upsides: - Less type casting to `*Event` is required. - Making Dendrite work with `PDU` interfaces means we can swap out Event impls more easily. - Tests which represent weird event shapes are easier to write. Part of a series of refactors on GMSL.
Diffstat (limited to 'syncapi')
-rw-r--r--syncapi/consumers/roomserver.go2
-rw-r--r--syncapi/routing/relations.go2
-rw-r--r--syncapi/storage/shared/storage_consumer.go8
-rw-r--r--syncapi/storage/shared/storage_sync.go4
-rw-r--r--syncapi/types/types.go2
-rw-r--r--syncapi/types/types_test.go2
6 files changed, 10 insertions, 10 deletions
diff --git a/syncapi/consumers/roomserver.go b/syncapi/consumers/roomserver.go
index 83ac82ff..56285dbf 100644
--- a/syncapi/consumers/roomserver.go
+++ b/syncapi/consumers/roomserver.go
@@ -526,7 +526,7 @@ func (s *OutputRoomEventConsumer) updateStateEvent(event *rstypes.HeaderedEvent)
PrevSender: prevEvent.Sender(),
}
- event.Event, err = event.SetUnsigned(prev)
+ event.PDU, err = event.SetUnsigned(prev)
succeeded = true
return event, err
}
diff --git a/syncapi/routing/relations.go b/syncapi/routing/relations.go
index 275ab65c..55e4347d 100644
--- a/syncapi/routing/relations.go
+++ b/syncapi/routing/relations.go
@@ -113,7 +113,7 @@ func Relations(
for _, event := range filteredEvents {
res.Chunk = append(
res.Chunk,
- synctypes.ToClientEvent(event.Event, synctypes.FormatAll),
+ synctypes.ToClientEvent(event.PDU, synctypes.FormatAll),
)
}
diff --git a/syncapi/storage/shared/storage_consumer.go b/syncapi/storage/shared/storage_consumer.go
index 05c7eec6..ecfd418f 100644
--- a/syncapi/storage/shared/storage_consumer.go
+++ b/syncapi/storage/shared/storage_consumer.go
@@ -352,13 +352,13 @@ func (d *Database) RedactEvent(ctx context.Context, redactedEventID string, reda
logrus.WithField("event_id", redactedEventID).WithField("redaction_event", redactedBecause.EventID()).Warnf("missing redacted event for redaction")
return nil
}
- eventToRedact := redactedEvents[0].Event
- redactionEvent := redactedBecause.Event
+ eventToRedact := redactedEvents[0].PDU
+ redactionEvent := redactedBecause.PDU
if err = eventutil.RedactEvent(redactionEvent, eventToRedact); err != nil {
return err
}
- newEvent := &rstypes.HeaderedEvent{Event: eventToRedact}
+ newEvent := &rstypes.HeaderedEvent{PDU: eventToRedact}
err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
return d.OutputEvents.UpdateEventJSON(ctx, txn, newEvent)
})
@@ -493,7 +493,7 @@ func (d *Database) CleanSendToDeviceUpdates(
// getMembershipFromEvent returns the value of content.membership iff the event is a state event
// with type 'm.room.member' and state_key of userID. Otherwise, an empty string is returned.
-func getMembershipFromEvent(ev *gomatrixserverlib.Event, userID string) (string, string) {
+func getMembershipFromEvent(ev gomatrixserverlib.PDU, userID string) (string, string) {
if ev.Type() != "m.room.member" || !ev.StateKeyEquals(userID) {
return "", ""
}
diff --git a/syncapi/storage/shared/storage_sync.go b/syncapi/storage/shared/storage_sync.go
index e8ba3e25..f2b1c58d 100644
--- a/syncapi/storage/shared/storage_sync.go
+++ b/syncapi/storage/shared/storage_sync.go
@@ -429,7 +429,7 @@ func (d *DatabaseTransaction) GetStateDeltas(
for _, ev := range stateStreamEvents {
// Look for our membership in the state events and skip over any
// membership events that are not related to us.
- membership, prevMembership := getMembershipFromEvent(ev.Event, userID)
+ membership, prevMembership := getMembershipFromEvent(ev.PDU, userID)
if membership == "" {
continue
}
@@ -555,7 +555,7 @@ func (d *DatabaseTransaction) GetStateDeltasForFullStateSync(
for roomID, stateStreamEvents := range state {
for _, ev := range stateStreamEvents {
- if membership, _ := getMembershipFromEvent(ev.Event, userID); membership != "" {
+ if membership, _ := getMembershipFromEvent(ev.PDU, userID); membership != "" {
if membership != spec.Join { // We've already added full state for all joined rooms above.
deltas[roomID] = types.StateDelta{
Membership: membership,
diff --git a/syncapi/types/types.go b/syncapi/types/types.go
index 983bf48a..22c27fea 100644
--- a/syncapi/types/types.go
+++ b/syncapi/types/types.go
@@ -552,7 +552,7 @@ func NewInviteResponse(event *types.HeaderedEvent) *InviteResponse {
// Then we'll see if we can create a partial of the invite event itself.
// This is needed for clients to work out *who* sent the invite.
- inviteEvent := synctypes.ToClientEvent(event.Event, synctypes.FormatSync)
+ inviteEvent := synctypes.ToClientEvent(event.PDU, synctypes.FormatSync)
inviteEvent.Unsigned = nil
if ev, err := json.Marshal(inviteEvent); err == nil {
res.InviteState.Events = append(res.InviteState.Events, ev)
diff --git a/syncapi/types/types_test.go b/syncapi/types/types_test.go
index 60ff02bd..8e0448fe 100644
--- a/syncapi/types/types_test.go
+++ b/syncapi/types/types_test.go
@@ -56,7 +56,7 @@ func TestNewInviteResponse(t *testing.T) {
t.Fatal(err)
}
- res := NewInviteResponse(&types.HeaderedEvent{Event: ev})
+ res := NewInviteResponse(&types.HeaderedEvent{PDU: ev})
j, err := json.Marshal(res)
if err != nil {
t.Fatal(err)