0
0
Fork 0
mirror of https://github.com/matrix-org/dendrite synced 2024-09-30 23:09:01 +02:00

Fix MarshalText as non-pointer, PrevBatch is optional

This commit is contained in:
Neil Alexander 2020-12-11 11:10:46 +00:00
parent 0634d9fed1
commit 7ed3f2676a
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
2 changed files with 9 additions and 9 deletions

View file

@ -880,14 +880,14 @@ func (d *Database) getJoinResponseForCompleteSync(
// Retrieve the backward topology position, i.e. the position of the
// oldest event in the room's topology.
var prevBatch types.TopologyToken
var prevBatch *types.TopologyToken
if len(recentStreamEvents) > 0 {
var backwardTopologyPos, backwardStreamPos types.StreamPosition
backwardTopologyPos, backwardStreamPos, err = d.Topology.SelectPositionInTopology(ctx, txn, recentStreamEvents[0].EventID())
if err != nil {
return
}
prevBatch = types.TopologyToken{
prevBatch = &types.TopologyToken{
Depth: backwardTopologyPos,
PDUPosition: backwardStreamPos,
}
@ -1028,7 +1028,7 @@ func (d *Database) addRoomDeltaToResponse(
case gomatrixserverlib.Join:
jr := types.NewJoinResponse()
jr.Timeline.PrevBatch = prevBatch
jr.Timeline.PrevBatch = &prevBatch
jr.Timeline.Events = gomatrixserverlib.HeaderedToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
jr.Timeline.Limited = limited
jr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.stateEvents, gomatrixserverlib.FormatSync)
@ -1036,7 +1036,7 @@ func (d *Database) addRoomDeltaToResponse(
case gomatrixserverlib.Peek:
jr := types.NewJoinResponse()
jr.Timeline.PrevBatch = prevBatch
jr.Timeline.PrevBatch = &prevBatch
jr.Timeline.Events = gomatrixserverlib.HeaderedToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
jr.Timeline.Limited = limited
jr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.stateEvents, gomatrixserverlib.FormatSync)
@ -1047,7 +1047,7 @@ func (d *Database) addRoomDeltaToResponse(
// TODO: recentEvents may contain events that this user is not allowed to see because they are
// no longer in the room.
lr := types.NewLeaveResponse()
lr.Timeline.PrevBatch = prevBatch
lr.Timeline.PrevBatch = &prevBatch
lr.Timeline.Events = gomatrixserverlib.HeaderedToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
lr.Timeline.Limited = false // TODO: if len(events) >= numRecents + 1 and then set limited:true
lr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.stateEvents, gomatrixserverlib.FormatSync)

View file

@ -114,7 +114,7 @@ type StreamingToken struct {
}
// This will be used as a fallback by json.Marshal.
func (t *StreamingToken) MarshalText() ([]byte, error) {
func (t StreamingToken) MarshalText() ([]byte, error) {
return []byte(t.String()), nil
}
@ -222,7 +222,7 @@ type TopologyToken struct {
}
// This will be used as a fallback by json.Marshal.
func (t *TopologyToken) MarshalText() ([]byte, error) {
func (t TopologyToken) MarshalText() ([]byte, error) {
return []byte(t.String()), nil
}
@ -422,7 +422,7 @@ type JoinResponse struct {
Timeline struct {
Events []gomatrixserverlib.ClientEvent `json:"events"`
Limited bool `json:"limited"`
PrevBatch TopologyToken `json:"prev_batch"`
PrevBatch *TopologyToken `json:"prev_batch,omitempty"`
} `json:"timeline"`
Ephemeral struct {
Events []gomatrixserverlib.ClientEvent `json:"events"`
@ -480,7 +480,7 @@ type LeaveResponse struct {
Timeline struct {
Events []gomatrixserverlib.ClientEvent `json:"events"`
Limited bool `json:"limited"`
PrevBatch TopologyToken `json:"prev_batch"`
PrevBatch *TopologyToken `json:"prev_batch,omitempty"`
} `json:"timeline"`
}