Fill the prev_batch property in responses from /sync (#589)
* Fill the prev_batch property in responses from /sync * Set prev_batch to 1 (first possible value in the sequence) if it's about to hit 0main
parent
83c3c7e1db
commit
8b0f60a470
|
@ -310,6 +310,11 @@ func (d *SyncServerDatabase) CompleteSync(
|
||||||
|
|
||||||
stateEvents = removeDuplicates(stateEvents, recentEvents)
|
stateEvents = removeDuplicates(stateEvents, recentEvents)
|
||||||
jr := types.NewJoinResponse()
|
jr := types.NewJoinResponse()
|
||||||
|
if prevBatch := recentStreamEvents[0].streamPosition - 1; prevBatch > 0 {
|
||||||
|
jr.Timeline.PrevBatch = types.StreamPosition(prevBatch).String()
|
||||||
|
} else {
|
||||||
|
jr.Timeline.PrevBatch = types.StreamPosition(1).String()
|
||||||
|
}
|
||||||
jr.Timeline.Events = gomatrixserverlib.ToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
|
jr.Timeline.Events = gomatrixserverlib.ToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
|
||||||
jr.Timeline.Limited = true
|
jr.Timeline.Limited = true
|
||||||
jr.State.Events = gomatrixserverlib.ToClientEvents(stateEvents, gomatrixserverlib.FormatSync)
|
jr.State.Events = gomatrixserverlib.ToClientEvents(stateEvents, gomatrixserverlib.FormatSync)
|
||||||
|
@ -439,6 +444,11 @@ func (d *SyncServerDatabase) addRoomDeltaToResponse(
|
||||||
switch delta.membership {
|
switch delta.membership {
|
||||||
case "join":
|
case "join":
|
||||||
jr := types.NewJoinResponse()
|
jr := types.NewJoinResponse()
|
||||||
|
if prevBatch := recentStreamEvents[0].streamPosition - 1; prevBatch > 0 {
|
||||||
|
jr.Timeline.PrevBatch = types.StreamPosition(prevBatch).String()
|
||||||
|
} else {
|
||||||
|
jr.Timeline.PrevBatch = types.StreamPosition(1).String()
|
||||||
|
}
|
||||||
jr.Timeline.Events = gomatrixserverlib.ToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
|
jr.Timeline.Events = gomatrixserverlib.ToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
|
||||||
jr.Timeline.Limited = false // TODO: if len(events) >= numRecents + 1 and then set limited:true
|
jr.Timeline.Limited = false // TODO: if len(events) >= numRecents + 1 and then set limited:true
|
||||||
jr.State.Events = gomatrixserverlib.ToClientEvents(delta.stateEvents, gomatrixserverlib.FormatSync)
|
jr.State.Events = gomatrixserverlib.ToClientEvents(delta.stateEvents, gomatrixserverlib.FormatSync)
|
||||||
|
@ -449,6 +459,11 @@ func (d *SyncServerDatabase) addRoomDeltaToResponse(
|
||||||
// TODO: recentEvents may contain events that this user is not allowed to see because they are
|
// TODO: recentEvents may contain events that this user is not allowed to see because they are
|
||||||
// no longer in the room.
|
// no longer in the room.
|
||||||
lr := types.NewLeaveResponse()
|
lr := types.NewLeaveResponse()
|
||||||
|
if prevBatch := recentStreamEvents[0].streamPosition - 1; prevBatch > 0 {
|
||||||
|
lr.Timeline.PrevBatch = types.StreamPosition(prevBatch).String()
|
||||||
|
} else {
|
||||||
|
lr.Timeline.PrevBatch = types.StreamPosition(1).String()
|
||||||
|
}
|
||||||
lr.Timeline.Events = gomatrixserverlib.ToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
|
lr.Timeline.Events = gomatrixserverlib.ToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
|
||||||
lr.Timeline.Limited = false // TODO: if len(events) >= numRecents + 1 and then set limited:true
|
lr.Timeline.Limited = false // TODO: if len(events) >= numRecents + 1 and then set limited:true
|
||||||
lr.State.Events = gomatrixserverlib.ToClientEvents(delta.stateEvents, gomatrixserverlib.FormatSync)
|
lr.State.Events = gomatrixserverlib.ToClientEvents(delta.stateEvents, gomatrixserverlib.FormatSync)
|
||||||
|
|
Loading…
Reference in New Issue