mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-16 10:33:11 -06:00
PR comment, make JoinResponse etc. pointers
This commit is contained in:
parent
861409911f
commit
55aef6abbb
|
|
@ -92,7 +92,7 @@ func (p *AccountDataStreamProvider) IncrementalSync(
|
||||||
if roomData, ok := dataRes.RoomAccountData[roomID][dataType]; ok {
|
if roomData, ok := dataRes.RoomAccountData[roomID][dataType]; ok {
|
||||||
joinData, ok := req.Response.Rooms.Join[roomID]
|
joinData, ok := req.Response.Rooms.Join[roomID]
|
||||||
if !ok {
|
if !ok {
|
||||||
joinData = *types.NewJoinResponse()
|
joinData = types.NewJoinResponse()
|
||||||
}
|
}
|
||||||
joinData.AccountData.Events = append(
|
joinData.AccountData.Events = append(
|
||||||
joinData.AccountData.Events,
|
joinData.AccountData.Events,
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ func (p *InviteStreamProvider) IncrementalSync(
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
ir := types.NewInviteResponse(inviteEvent)
|
ir := types.NewInviteResponse(inviteEvent)
|
||||||
req.Response.Rooms.Invite[roomID] = *ir
|
req.Response.Rooms.Invite[roomID] = ir
|
||||||
}
|
}
|
||||||
|
|
||||||
// When doing an initial sync, we don't want to add retired invites, as this
|
// When doing an initial sync, we don't want to add retired invites, as this
|
||||||
|
|
@ -87,7 +87,7 @@ func (p *InviteStreamProvider) IncrementalSync(
|
||||||
Type: "m.room.member",
|
Type: "m.room.member",
|
||||||
Content: gomatrixserverlib.RawJSON(`{"membership":"leave"}`),
|
Content: gomatrixserverlib.RawJSON(`{"membership":"leave"}`),
|
||||||
})
|
})
|
||||||
req.Response.Rooms.Leave[roomID] = *lr
|
req.Response.Rooms.Leave[roomID] = lr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ func (p *PDUStreamProvider) CompleteSync(
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
req.Response.Rooms.Join[roomID] = *jr
|
req.Response.Rooms.Join[roomID] = jr
|
||||||
req.Rooms[roomID] = gomatrixserverlib.Join
|
req.Rooms[roomID] = gomatrixserverlib.Join
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -129,7 +129,7 @@ func (p *PDUStreamProvider) CompleteSync(
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
req.Response.Rooms.Peek[peek.RoomID] = *jr
|
req.Response.Rooms.Peek[peek.RoomID] = jr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -320,7 +320,7 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
|
||||||
// didn't "remove" events, return that the response is limited.
|
// didn't "remove" events, return that the response is limited.
|
||||||
jr.Timeline.Limited = limited && len(events) == len(recentEvents)
|
jr.Timeline.Limited = limited && len(events) == len(recentEvents)
|
||||||
jr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.StateEvents, gomatrixserverlib.FormatSync)
|
jr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.StateEvents, gomatrixserverlib.FormatSync)
|
||||||
res.Rooms.Join[delta.RoomID] = *jr
|
res.Rooms.Join[delta.RoomID] = jr
|
||||||
|
|
||||||
case gomatrixserverlib.Peek:
|
case gomatrixserverlib.Peek:
|
||||||
jr := types.NewJoinResponse()
|
jr := types.NewJoinResponse()
|
||||||
|
|
@ -329,7 +329,7 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
|
||||||
jr.Timeline.Events = gomatrixserverlib.HeaderedToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
|
jr.Timeline.Events = gomatrixserverlib.HeaderedToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
|
||||||
jr.Timeline.Limited = limited
|
jr.Timeline.Limited = limited
|
||||||
jr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.StateEvents, gomatrixserverlib.FormatSync)
|
jr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.StateEvents, gomatrixserverlib.FormatSync)
|
||||||
res.Rooms.Peek[delta.RoomID] = *jr
|
res.Rooms.Peek[delta.RoomID] = jr
|
||||||
|
|
||||||
case gomatrixserverlib.Leave:
|
case gomatrixserverlib.Leave:
|
||||||
fallthrough // transitions to leave are the same as ban
|
fallthrough // transitions to leave are the same as ban
|
||||||
|
|
@ -342,7 +342,7 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
|
||||||
// didn't "remove" events, return that the response is limited.
|
// didn't "remove" events, return that the response is limited.
|
||||||
lr.Timeline.Limited = limited && len(events) == len(recentEvents)
|
lr.Timeline.Limited = limited && len(events) == len(recentEvents)
|
||||||
lr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.StateEvents, gomatrixserverlib.FormatSync)
|
lr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.StateEvents, gomatrixserverlib.FormatSync)
|
||||||
res.Rooms.Leave[delta.RoomID] = *lr
|
res.Rooms.Leave[delta.RoomID] = lr
|
||||||
}
|
}
|
||||||
|
|
||||||
return latestPosition, nil
|
return latestPosition, nil
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,10 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/matrix-org/gomatrixserverlib"
|
||||||
|
|
||||||
"github.com/matrix-org/dendrite/syncapi/storage"
|
"github.com/matrix-org/dendrite/syncapi/storage"
|
||||||
"github.com/matrix-org/dendrite/syncapi/types"
|
"github.com/matrix-org/dendrite/syncapi/types"
|
||||||
"github.com/matrix-org/gomatrixserverlib"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type ReceiptStreamProvider struct {
|
type ReceiptStreamProvider struct {
|
||||||
|
|
@ -76,7 +77,7 @@ func (p *ReceiptStreamProvider) IncrementalSync(
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
jr := *types.NewJoinResponse()
|
jr := types.NewJoinResponse()
|
||||||
if existing, ok := req.Response.Rooms.Join[roomID]; ok {
|
if existing, ok := req.Response.Rooms.Join[roomID]; ok {
|
||||||
jr = existing
|
jr = existing
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ func (p *TypingStreamProvider) IncrementalSync(
|
||||||
|
|
||||||
jr, ok := req.Response.Rooms.Join[roomID]
|
jr, ok := req.Response.Rooms.Join[roomID]
|
||||||
if !ok {
|
if !ok {
|
||||||
jr = *types.NewJoinResponse()
|
jr = types.NewJoinResponse()
|
||||||
}
|
}
|
||||||
|
|
||||||
if users, updated := p.EDUCache.GetTypingUsersIfUpdatedAfter(
|
if users, updated := p.EDUCache.GetTypingUsersIfUpdatedAfter(
|
||||||
|
|
|
||||||
|
|
@ -333,10 +333,10 @@ type DeviceLists struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type RoomsResponse struct {
|
type RoomsResponse struct {
|
||||||
Join map[string]JoinResponse `json:"join,omitempty"`
|
Join map[string]*JoinResponse `json:"join,omitempty"`
|
||||||
Peek map[string]JoinResponse `json:"peek,omitempty"`
|
Peek map[string]*JoinResponse `json:"peek,omitempty"`
|
||||||
Invite map[string]InviteResponse `json:"invite,omitempty"`
|
Invite map[string]*InviteResponse `json:"invite,omitempty"`
|
||||||
Leave map[string]LeaveResponse `json:"leave,omitempty"`
|
Leave map[string]*LeaveResponse `json:"leave,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ToDeviceResponse struct {
|
type ToDeviceResponse struct {
|
||||||
|
|
@ -399,10 +399,10 @@ func NewResponse() *Response {
|
||||||
// Pre-initialise the maps. Synapse will return {} even if there are no rooms under a specific section,
|
// Pre-initialise the maps. Synapse will return {} even if there are no rooms under a specific section,
|
||||||
// so let's do the same thing. Bonus: this means we can't get dreaded 'assignment to entry in nil map' errors.
|
// so let's do the same thing. Bonus: this means we can't get dreaded 'assignment to entry in nil map' errors.
|
||||||
res.Rooms = &RoomsResponse{
|
res.Rooms = &RoomsResponse{
|
||||||
Join: map[string]JoinResponse{},
|
Join: map[string]*JoinResponse{},
|
||||||
Peek: map[string]JoinResponse{},
|
Peek: map[string]*JoinResponse{},
|
||||||
Invite: map[string]InviteResponse{},
|
Invite: map[string]*InviteResponse{},
|
||||||
Leave: map[string]LeaveResponse{},
|
Leave: map[string]*LeaveResponse{},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Also pre-intialise empty slices or else we'll insert 'null' instead of '[]' for the value.
|
// Also pre-intialise empty slices or else we'll insert 'null' instead of '[]' for the value.
|
||||||
|
|
@ -493,7 +493,7 @@ func (jr JoinResponse) MarshalJSON() ([]byte, error) {
|
||||||
|
|
||||||
// NewJoinResponse creates an empty response with initialised arrays.
|
// NewJoinResponse creates an empty response with initialised arrays.
|
||||||
func NewJoinResponse() *JoinResponse {
|
func NewJoinResponse() *JoinResponse {
|
||||||
res := JoinResponse{
|
return &JoinResponse{
|
||||||
Summary: &Summary{},
|
Summary: &Summary{},
|
||||||
State: &ClientEvents{},
|
State: &ClientEvents{},
|
||||||
Timeline: &Timeline{},
|
Timeline: &Timeline{},
|
||||||
|
|
@ -501,7 +501,6 @@ func NewJoinResponse() *JoinResponse {
|
||||||
AccountData: &ClientEvents{},
|
AccountData: &ClientEvents{},
|
||||||
UnreadNotifications: &UnreadNotifications{},
|
UnreadNotifications: &UnreadNotifications{},
|
||||||
}
|
}
|
||||||
return &res
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// InviteResponse represents a /sync response for a room which is under the 'invite' key.
|
// InviteResponse represents a /sync response for a room which is under the 'invite' key.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue