aboutsummaryrefslogtreecommitdiff
path: root/syncapi/storage
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2020-05-28 10:05:04 +0100
committerGitHub <noreply@github.com>2020-05-28 10:05:04 +0100
commit02fe38e1f74a61f900ff5d8a4e2d5870ba737386 (patch)
tree081fd9a3c215770cea3de4a58399ae67585eeabc /syncapi/storage
parent57841fc35ebb6f591903e20694dad3548bf71ce8 (diff)
Per-user-per-device sync streams (#1068)
* Per-user-per-device sync streams * Tweaks * Tweaks * Pass full device into CompleteSync * Set user IDs and device IDs properly in tests * Add new test, fix TestNewEventAndWasPreviouslyJoinedToRoom * nolint a function that is not used yet * Add test for waking up single device * Hopefully unstick test * Try to ensure that TestCorrectStreamWakeup doesn't block forever * Update tests
Diffstat (limited to 'syncapi/storage')
-rw-r--r--syncapi/storage/interface.go2
-rw-r--r--syncapi/storage/shared/syncserver.go4
-rw-r--r--syncapi/storage/storage_test.go4
3 files changed, 5 insertions, 5 deletions
diff --git a/syncapi/storage/interface.go b/syncapi/storage/interface.go
index 3e9ff053..7e1a40fd 100644
--- a/syncapi/storage/interface.go
+++ b/syncapi/storage/interface.go
@@ -58,7 +58,7 @@ type Database interface {
// ID.
IncrementalSync(ctx context.Context, device authtypes.Device, fromPos, toPos types.StreamingToken, numRecentEventsPerRoom int, wantFullState bool) (*types.Response, error)
// CompleteSync returns a complete /sync API response for the given user.
- CompleteSync(ctx context.Context, userID string, numRecentEventsPerRoom int) (*types.Response, error)
+ CompleteSync(ctx context.Context, device authtypes.Device, numRecentEventsPerRoom int) (*types.Response, error)
// GetAccountDataInRange returns all account data for a given user inserted or
// updated between two given positions
// Returns a map following the format data[roomID] = []dataTypes
diff --git a/syncapi/storage/shared/syncserver.go b/syncapi/storage/shared/syncserver.go
index 145a3dbf..888f85e0 100644
--- a/syncapi/storage/shared/syncserver.go
+++ b/syncapi/storage/shared/syncserver.go
@@ -666,10 +666,10 @@ func (d *Database) getResponseWithPDUsForCompleteSync(
}
func (d *Database) CompleteSync(
- ctx context.Context, userID string, numRecentEventsPerRoom int,
+ ctx context.Context, device authtypes.Device, numRecentEventsPerRoom int,
) (*types.Response, error) {
res, toPos, joinedRoomIDs, err := d.getResponseWithPDUsForCompleteSync(
- ctx, userID, numRecentEventsPerRoom,
+ ctx, device.UserID, numRecentEventsPerRoom,
)
if err != nil {
return nil, err
diff --git a/syncapi/storage/storage_test.go b/syncapi/storage/storage_test.go
index 6b045852..bb8554f4 100644
--- a/syncapi/storage/storage_test.go
+++ b/syncapi/storage/storage_test.go
@@ -181,7 +181,7 @@ func TestSyncResponse(t *testing.T) {
Name: "CompleteSync limited",
DoSync: func() (*types.Response, error) {
// limit set to 5
- return db.CompleteSync(ctx, testUserIDA, 5)
+ return db.CompleteSync(ctx, testUserDeviceA, 5)
},
// want the last 5 events
WantTimeline: events[len(events)-5:],
@@ -193,7 +193,7 @@ func TestSyncResponse(t *testing.T) {
{
Name: "CompleteSync",
DoSync: func() (*types.Response, error) {
- return db.CompleteSync(ctx, testUserIDA, len(events)+1)
+ return db.CompleteSync(ctx, testUserDeviceA, len(events)+1)
},
WantTimeline: events,
// We want no state at all as that field in /sync is the delta between the token (beginning of time)