77 Commits

Author SHA1 Message Date
Kegan Dougal
7d42f1413a Add stub room_member stream 2021-08-05 17:28:38 +01:00
Kegan Dougal
8c27fbb877 Implement to_device message cleanup after all sessions have ACKed the message 2021-08-05 12:50:03 +01:00
Kegan Dougal
9c967ffe2a Implement to_device limits
- Fix a bug where copies of `Token` didn't copy the position (swap to actual arrays not slices)
- Modify the interface for `DataInRange` to allow it to return an `upTo` value. Required because
  requesting positions 10-50 when the limit is 20 may return events between 10-30, meaning the
  to position needs updating else the events between 30-50 will be lost.
2021-08-05 10:54:04 +01:00
Kegan Dougal
33f0ff6fca Refactor how sync v3 requests are combined to ensure stickiness
This is simpler, if somewhat inefficient. With tests.
2021-08-03 18:06:36 +01:00
Kegan Dougal
075a0d19a0 Add a Streamer interface and make liberal use of it
This will be extended further, because where we're going, we need a
lot of streams...
2021-08-03 17:43:41 +01:00
Kegan Dougal
89a6c2e3d7 Refactor token handling to more easily support additional positions 2021-08-03 16:25:57 +01:00
Kegan Dougal
5b4b1a10ed Glue to_device stuff into the v3 handler, refactor to prevent import cycles 2021-08-03 12:06:09 +01:00
Kegan Dougal
bcfe9b051f Add to_device table; factor out Chunkify so we can re-use it 2021-08-02 16:45:09 +01:00
Kegan Dougal
9fdf3901df Hook up the notifier and test it
Test that v3 requests can time out, be notified when v2 returns a response,
can return immediately.
2021-07-23 16:40:32 +01:00
Kegan Dougal
90dceee6f6 Add V2DataReceiver interface and indirect via SyncV3Handler
This allows us to notify the Notifier as well as store the data
in the database. Reshuffle where streams live (it's a sync v3 concept).
2021-07-23 15:39:41 +01:00
Kegan Dougal
edd3138fbb Cargo-cult notifier from dendrite 2021-07-23 14:06:18 +01:00
Kegan Dougal
f3e6b563d4 Refactor tests; add timeout field with token comparisons 2021-07-23 12:23:54 +01:00
Kegan Dougal
df120a5341 Passing typing stream test 2021-07-23 11:37:33 +01:00
Kegan Dougal
f03669ff31 Improve logging; add more typing stream code 2021-07-23 11:07:03 +01:00
Kegan Dougal
749e4d413e Add integration tests on the http handler 2021-07-21 16:35:36 +01:00
Kegan Dougal
7ec14bb8a5 Add filter sql and tests 2021-07-21 15:15:50 +01:00
Kegan Dougal
f8563c0c1b Flesh out request/response glue code 2021-07-21 15:03:09 +01:00
Kegan Dougal
7f8d84d79e Add filter tables; remove alice dep 2021-07-21 12:12:57 +01:00
Kegan Dougal
747d85e87c Map Auth header to user via /whoami; add query for highest nid
Add stub room list stream
2021-06-16 18:56:31 +01:00
Kegan Dougal
1df6237cb4 Add last (un)confirmed tokens to sessions
Also make session IDs an int64. Add tests.
2021-06-16 18:11:40 +01:00
Kegan Dougal
e09c749bdc Add Storage and put Accumulator inside it 2021-06-16 17:18:04 +01:00
Kegan Dougal
49728c3c12 clarify bits 2021-06-11 17:20:32 +01:00
Kegan Dougal
b0146bb031 Remember since tokens for each device
Tie it to the device so a since-less v3 sync still pulls in stored pollers
2021-06-09 18:13:55 +01:00
Kegan Dougal
29b17b89e5 Shuffle package names around so we don't clash with Go terminology for v2 and v3 2021-06-09 17:27:54 +01:00
Kegan Dougal
159530bed1 Add v2 polling; chunk event insertion to support Matrix HQ 2021-06-04 13:02:28 +01:00
Kegan Dougal
502274b475 Dump v2 responses into the accumulator 2021-06-03 16:18:01 +01:00
Kegan Dougal
9d372e15de Initial commit 2021-05-14 16:49:33 +01:00