mirror of
https://github.com/hoernschen/dendrite.git
synced 2025-07-30 21:12:45 +00:00
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.
This commit is contained in:
parent
696cbb70b8
commit
f5b3144dc3
64 changed files with 296 additions and 284 deletions
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -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 "", ""
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue