mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-18 04:13:10 -06:00
Update producers to roomserver inputs
This commit is contained in:
parent
045a1a5c2e
commit
79394650fe
|
|
@ -40,9 +40,11 @@ func (c *RoomserverProducer) SendEvents(
|
||||||
) (string, error) {
|
) (string, error) {
|
||||||
ires := make([]api.InputRoomEvent, len(events))
|
ires := make([]api.InputRoomEvent, len(events))
|
||||||
for i, event := range events {
|
for i, event := range events {
|
||||||
|
roomVersion := gomatrixserverlib.RoomVersionV1
|
||||||
|
|
||||||
ires[i] = api.InputRoomEvent{
|
ires[i] = api.InputRoomEvent{
|
||||||
Kind: api.KindNew,
|
Kind: api.KindNew,
|
||||||
Event: event,
|
Event: event.Headered(roomVersion),
|
||||||
AuthEventIDs: event.AuthEventIDs(),
|
AuthEventIDs: event.AuthEventIDs(),
|
||||||
SendAsServer: string(sendAsServer),
|
SendAsServer: string(sendAsServer),
|
||||||
TransactionID: txnID,
|
TransactionID: txnID,
|
||||||
|
|
@ -61,11 +63,14 @@ func (c *RoomserverProducer) SendEventWithState(
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Room version here
|
||||||
|
roomVersion := gomatrixserverlib.RoomVersionV1
|
||||||
|
|
||||||
ires := make([]api.InputRoomEvent, len(outliers)+1)
|
ires := make([]api.InputRoomEvent, len(outliers)+1)
|
||||||
for i, outlier := range outliers {
|
for i, outlier := range outliers {
|
||||||
ires[i] = api.InputRoomEvent{
|
ires[i] = api.InputRoomEvent{
|
||||||
Kind: api.KindOutlier,
|
Kind: api.KindOutlier,
|
||||||
Event: outlier,
|
Event: outlier.Headered(roomVersion),
|
||||||
AuthEventIDs: outlier.AuthEventIDs(),
|
AuthEventIDs: outlier.AuthEventIDs(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -77,7 +82,7 @@ func (c *RoomserverProducer) SendEventWithState(
|
||||||
|
|
||||||
ires[len(outliers)] = api.InputRoomEvent{
|
ires[len(outliers)] = api.InputRoomEvent{
|
||||||
Kind: api.KindNew,
|
Kind: api.KindNew,
|
||||||
Event: event,
|
Event: event.Headered(roomVersion),
|
||||||
AuthEventIDs: event.AuthEventIDs(),
|
AuthEventIDs: event.AuthEventIDs(),
|
||||||
HasState: true,
|
HasState: true,
|
||||||
StateEventIDs: stateEventIDs,
|
StateEventIDs: stateEventIDs,
|
||||||
|
|
@ -104,8 +109,13 @@ func (c *RoomserverProducer) SendInputRoomEvents(
|
||||||
func (c *RoomserverProducer) SendInvite(
|
func (c *RoomserverProducer) SendInvite(
|
||||||
ctx context.Context, inviteEvent gomatrixserverlib.Event,
|
ctx context.Context, inviteEvent gomatrixserverlib.Event,
|
||||||
) error {
|
) error {
|
||||||
|
// TODO: Room version here
|
||||||
|
roomVersion := gomatrixserverlib.RoomVersionV1
|
||||||
|
|
||||||
request := api.InputRoomEventsRequest{
|
request := api.InputRoomEventsRequest{
|
||||||
InputInviteEvents: []api.InputInviteEvent{{Event: inviteEvent}},
|
InputInviteEvents: []api.InputInviteEvent{{
|
||||||
|
Event: inviteEvent.Headered(roomVersion),
|
||||||
|
}},
|
||||||
}
|
}
|
||||||
var response api.InputRoomEventsResponse
|
var response api.InputRoomEventsResponse
|
||||||
return c.InputAPI.InputRoomEvents(ctx, &request, &response)
|
return c.InputAPI.InputRoomEvents(ctx, &request, &response)
|
||||||
|
|
|
||||||
|
|
@ -180,7 +180,8 @@ func createRoom(
|
||||||
}
|
}
|
||||||
|
|
||||||
r.CreationContent["creator"] = userID
|
r.CreationContent["creator"] = userID
|
||||||
r.CreationContent["room_version"] = "1" // TODO: We set this to 1 before we support Room versioning
|
// TODO: Room version here
|
||||||
|
r.CreationContent["room_version"] = gomatrixserverlib.RoomVersionV1
|
||||||
|
|
||||||
// TODO: visibility/presets/raw initial state
|
// TODO: visibility/presets/raw initial state
|
||||||
// TODO: Create room alias association
|
// TODO: Create room alias association
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,7 @@ func writeEvent(event gomatrixserverlib.Event) {
|
||||||
if *format == "InputRoomEvent" {
|
if *format == "InputRoomEvent" {
|
||||||
var ire api.InputRoomEvent
|
var ire api.InputRoomEvent
|
||||||
ire.Kind = api.KindNew
|
ire.Kind = api.KindNew
|
||||||
ire.Event = event
|
ire.Event = event.Headered(gomatrixserverlib.RoomVersionV1)
|
||||||
authEventIDs := []string{}
|
authEventIDs := []string{}
|
||||||
for _, ref := range b.AuthEvents {
|
for _, ref := range b.AuthEvents {
|
||||||
authEventIDs = append(authEventIDs, ref.EventID)
|
authEventIDs = append(authEventIDs, ref.EventID)
|
||||||
|
|
|
||||||
|
|
@ -250,10 +250,13 @@ func (r *RoomserverAliasAPI) sendUpdatedAliasesEvent(
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Room version here
|
||||||
|
roomVersion := gomatrixserverlib.RoomVersionV1
|
||||||
|
|
||||||
// Create the request
|
// Create the request
|
||||||
ire := roomserverAPI.InputRoomEvent{
|
ire := roomserverAPI.InputRoomEvent{
|
||||||
Kind: roomserverAPI.KindNew,
|
Kind: roomserverAPI.KindNew,
|
||||||
Event: event,
|
Event: event.Headered(roomVersion),
|
||||||
AuthEventIDs: event.AuthEventIDs(),
|
AuthEventIDs: event.AuthEventIDs(),
|
||||||
SendAsServer: serverName,
|
SendAsServer: serverName,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ type InputRoomEvent struct {
|
||||||
// This controls how the event is processed.
|
// This controls how the event is processed.
|
||||||
Kind int `json:"kind"`
|
Kind int `json:"kind"`
|
||||||
// The event JSON for the event to add.
|
// The event JSON for the event to add.
|
||||||
Event gomatrixserverlib.Event `json:"event"`
|
Event gomatrixserverlib.HeaderedEvent `json:"event"`
|
||||||
// List of state event IDs that authenticate this event.
|
// List of state event IDs that authenticate this event.
|
||||||
// These are likely derived from the "auth_events" JSON key of the event.
|
// These are likely derived from the "auth_events" JSON key of the event.
|
||||||
// But can be different because the "auth_events" key can be incomplete or wrong.
|
// But can be different because the "auth_events" key can be incomplete or wrong.
|
||||||
|
|
@ -85,7 +85,7 @@ type TransactionID struct {
|
||||||
// the usual context a matrix room event would have. We usually do not have
|
// the usual context a matrix room event would have. We usually do not have
|
||||||
// access to the events needed to check the event auth rules for the invite.
|
// access to the events needed to check the event auth rules for the invite.
|
||||||
type InputInviteEvent struct {
|
type InputInviteEvent struct {
|
||||||
Event gomatrixserverlib.Event `json:"event"`
|
Event gomatrixserverlib.HeaderedEvent `json:"event"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// InputRoomEventsRequest is a request to InputRoomEvents
|
// InputRoomEventsRequest is a request to InputRoomEvents
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ func processRoomEvent(
|
||||||
event := input.Event
|
event := input.Event
|
||||||
|
|
||||||
// Check that the event passes authentication checks and work out the numeric IDs for the auth events.
|
// Check that the event passes authentication checks and work out the numeric IDs for the auth events.
|
||||||
authEventNIDs, err := checkAuthEvents(ctx, db, event, input.AuthEventIDs)
|
authEventNIDs, err := checkAuthEvents(ctx, db, event.Event, input.AuthEventIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -112,7 +112,7 @@ func processRoomEvent(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store the event
|
// Store the event
|
||||||
roomNID, stateAtEvent, err := db.StoreEvent(ctx, event, input.TransactionID, authEventNIDs)
|
roomNID, stateAtEvent, err := db.StoreEvent(ctx, event.Event, input.TransactionID, authEventNIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -127,7 +127,7 @@ func processRoomEvent(
|
||||||
if stateAtEvent.BeforeStateSnapshotNID == 0 {
|
if stateAtEvent.BeforeStateSnapshotNID == 0 {
|
||||||
// We haven't calculated a state for this event yet.
|
// We haven't calculated a state for this event yet.
|
||||||
// Lets calculate one.
|
// Lets calculate one.
|
||||||
err = calculateAndSetState(ctx, db, input, roomNID, &stateAtEvent, event)
|
err = calculateAndSetState(ctx, db, input, roomNID, &stateAtEvent, event.Event)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -140,7 +140,7 @@ func processRoomEvent(
|
||||||
|
|
||||||
// Update the extremities of the event graph for the room
|
// Update the extremities of the event graph for the room
|
||||||
return event.EventID(), updateLatestEvents(
|
return event.EventID(), updateLatestEvents(
|
||||||
ctx, db, ow, roomNID, stateAtEvent, event, input.SendAsServer, input.TransactionID,
|
ctx, db, ow, roomNID, stateAtEvent, event.Event, input.SendAsServer, input.TransactionID,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -234,7 +234,7 @@ func processInviteEvent(
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
outputUpdates, err := updateToInviteMembership(updater, &input.Event, nil)
|
outputUpdates, err := updateToInviteMembership(updater, &input.Event.Event, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue