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
|
@ -89,8 +89,8 @@ type EventRelationshipResponse struct {
|
|||
|
||||
type MSC2836EventRelationshipsResponse struct {
|
||||
fclient.MSC2836EventRelationshipsResponse
|
||||
ParsedEvents []*gomatrixserverlib.Event
|
||||
ParsedAuthChain []*gomatrixserverlib.Event
|
||||
ParsedEvents []gomatrixserverlib.PDU
|
||||
ParsedAuthChain []gomatrixserverlib.PDU
|
||||
}
|
||||
|
||||
func toClientResponse(res *MSC2836EventRelationshipsResponse) *EventRelationshipResponse {
|
||||
|
@ -306,11 +306,11 @@ func (rc *reqCtx) process() (*MSC2836EventRelationshipsResponse, *util.JSONRespo
|
|||
)
|
||||
returnEvents = append(returnEvents, events...)
|
||||
}
|
||||
res.ParsedEvents = make([]*gomatrixserverlib.Event, len(returnEvents))
|
||||
res.ParsedEvents = make([]gomatrixserverlib.PDU, len(returnEvents))
|
||||
for i, ev := range returnEvents {
|
||||
// for each event, extract the children_count | hash and add it as unsigned data.
|
||||
rc.addChildMetadata(ev)
|
||||
res.ParsedEvents[i] = ev.Event
|
||||
res.ParsedEvents[i] = ev.PDU
|
||||
}
|
||||
res.Limited = remaining == 0 || walkLimited
|
||||
return &res, nil
|
||||
|
@ -373,7 +373,7 @@ func (rc *reqCtx) fetchUnknownEvent(eventID, roomID string) *types.HeaderedEvent
|
|||
rc.injectResponseToRoomserver(res)
|
||||
for _, ev := range res.ParsedEvents {
|
||||
if ev.EventID() == eventID {
|
||||
return &types.HeaderedEvent{Event: ev}
|
||||
return &types.HeaderedEvent{PDU: ev}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -603,7 +603,7 @@ func (rc *reqCtx) lookForEvent(eventID string) *types.HeaderedEvent {
|
|||
rc.injectResponseToRoomserver(queryRes)
|
||||
for _, ev := range queryRes.ParsedEvents {
|
||||
if ev.EventID() == eventID && rc.req.RoomID == ev.RoomID() {
|
||||
return &types.HeaderedEvent{Event: ev}
|
||||
return &types.HeaderedEvent{PDU: ev}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -665,7 +665,7 @@ func (rc *reqCtx) injectResponseToRoomserver(res *MSC2836EventRelationshipsRespo
|
|||
for _, outlier := range append(eventsInOrder, messageEvents...) {
|
||||
ires = append(ires, roomserver.InputRoomEvent{
|
||||
Kind: roomserver.KindOutlier,
|
||||
Event: &types.HeaderedEvent{Event: outlier.(*gomatrixserverlib.Event)},
|
||||
Event: &types.HeaderedEvent{PDU: outlier},
|
||||
})
|
||||
}
|
||||
// we've got the data by this point so use a background context
|
||||
|
|
|
@ -397,7 +397,7 @@ func newReq(t *testing.T, jsonBody map[string]interface{}) *msc2836.EventRelatio
|
|||
func runServer(t *testing.T, router *mux.Router) func() {
|
||||
t.Helper()
|
||||
externalServ := &http.Server{
|
||||
Addr: string(":8009"),
|
||||
Addr: string("127.0.0.1:8009"),
|
||||
WriteTimeout: 60 * time.Second,
|
||||
Handler: router,
|
||||
}
|
||||
|
@ -602,6 +602,6 @@ func mustCreateEvent(t *testing.T, ev fledglingEvent) (result *types.HeaderedEve
|
|||
if err != nil {
|
||||
t.Fatalf("mustCreateEvent: failed to sign event: %s", err)
|
||||
}
|
||||
h := &types.HeaderedEvent{Event: signedEvent}
|
||||
h := &types.HeaderedEvent{PDU: signedEvent}
|
||||
return h
|
||||
}
|
||||
|
|
|
@ -693,7 +693,7 @@ func (w *walker) childReferences(roomID string) ([]fclient.MSC2946StrippedEvent,
|
|||
// else we'll incorrectly walk redacted events (as the link
|
||||
// is in the state_key)
|
||||
if content.Get("via").Exists() {
|
||||
strip := stripped(ev.Event)
|
||||
strip := stripped(ev.PDU)
|
||||
if strip == nil {
|
||||
continue
|
||||
}
|
||||
|
@ -723,7 +723,7 @@ func (s set) isSet(val string) bool {
|
|||
return ok
|
||||
}
|
||||
|
||||
func stripped(ev *gomatrixserverlib.Event) *fclient.MSC2946StrippedEvent {
|
||||
func stripped(ev gomatrixserverlib.PDU) *fclient.MSC2946StrippedEvent {
|
||||
if ev.StateKey() == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue