From 4daea54a337b2db83f3d9e08827dcaf1b4417b27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Sun, 24 Nov 2019 22:40:52 +0100 Subject: [PATCH] base_client: Consume sync responses and store the sync token. --- src/async_client.rs | 6 ++++++ src/base_client.rs | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/src/async_client.rs b/src/async_client.rs index 9cd699d2..fc00f11c 100644 --- a/src/async_client.rs +++ b/src/async_client.rs @@ -255,6 +255,8 @@ impl AsyncClient { // cb(room.clone(), Arc::new(event.clone())).await; // } } + + client.receive_sync_response(&response); } Ok(response) @@ -323,4 +325,8 @@ impl AsyncClient { let response = self.send(request).await?; Ok(response) } + + pub fn sync_token(&self) -> Option { + self.base_client.read().unwrap().sync_token.clone() + } } diff --git a/src/base_client.rs b/src/base_client.rs index ca4ea68e..f875eb70 100644 --- a/src/base_client.rs +++ b/src/base_client.rs @@ -232,4 +232,8 @@ impl Client { let mut room = self.get_or_create_room(room_id).write().unwrap(); room.receive_state_event(event) } + + pub fn receive_sync_response(&mut self, response: &api::sync::sync_events::Response) { + self.sync_token = Some(response.next_batch.clone()); + } }