mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-19 08:41:24 +01:00
MSC3575: factor out ConnectionKey
This commit is contained in:
parent
3bbee92db4
commit
991f1e2c0d
2 changed files with 50 additions and 85 deletions
|
|
@ -25,7 +25,7 @@ use tracing::{debug, error};
|
|||
|
||||
use super::{load_timeline, share_encrypted_room};
|
||||
use crate::{
|
||||
service::{account_data, rooms::timeline::PduCount},
|
||||
service::{account_data, rooms::timeline::PduCount, users::ConnectionKey},
|
||||
services, Ar, Error, Ra, Result,
|
||||
};
|
||||
|
||||
|
|
@ -76,22 +76,22 @@ pub(crate) async fn sync_events_v4_route(
|
|||
let globalsince =
|
||||
body.pos.as_ref().and_then(|string| string.parse().ok()).unwrap_or(0);
|
||||
|
||||
let connection_key = ConnectionKey {
|
||||
user: sender_user.clone(),
|
||||
device: sender_device.clone(),
|
||||
connection: body.conn_id.clone(),
|
||||
};
|
||||
|
||||
if globalsince == 0 {
|
||||
if let Some(conn_id) = &body.conn_id {
|
||||
services().users.forget_sync_request_connection(
|
||||
sender_user.clone(),
|
||||
sender_device.clone(),
|
||||
conn_id.clone(),
|
||||
);
|
||||
if body.conn_id.is_some() {
|
||||
services().users.forget_sync_request_connection(&connection_key);
|
||||
}
|
||||
}
|
||||
|
||||
// Get sticky parameters from cache
|
||||
let known_rooms = services().users.update_sync_request_with_cache(
|
||||
sender_user.clone(),
|
||||
sender_device.clone(),
|
||||
&mut body,
|
||||
);
|
||||
let known_rooms = services()
|
||||
.users
|
||||
.update_sync_request_with_cache(connection_key.clone(), &mut body);
|
||||
|
||||
let all_joined_rooms = services()
|
||||
.rooms
|
||||
|
|
@ -379,11 +379,9 @@ pub(crate) async fn sync_events_v4_route(
|
|||
},
|
||||
);
|
||||
|
||||
if let Some(conn_id) = &body.conn_id {
|
||||
if body.conn_id.is_some() {
|
||||
services().users.update_sync_known_rooms(
|
||||
sender_user.clone(),
|
||||
sender_device.clone(),
|
||||
conn_id.clone(),
|
||||
connection_key.clone(),
|
||||
list_id,
|
||||
new_known_rooms,
|
||||
globalsince,
|
||||
|
|
@ -410,24 +408,19 @@ pub(crate) async fn sync_events_v4_route(
|
|||
body.room_subscriptions.remove(&r);
|
||||
}
|
||||
|
||||
if let Some(conn_id) = &body.conn_id {
|
||||
if body.conn_id.is_some() {
|
||||
services().users.update_sync_known_rooms(
|
||||
sender_user.clone(),
|
||||
sender_device.clone(),
|
||||
conn_id.clone(),
|
||||
connection_key.clone(),
|
||||
"subscriptions".to_owned(),
|
||||
known_subscription_rooms,
|
||||
globalsince,
|
||||
);
|
||||
}
|
||||
|
||||
if let Some(conn_id) = &body.conn_id {
|
||||
services().users.update_sync_subscriptions(
|
||||
sender_user.clone(),
|
||||
sender_device.clone(),
|
||||
conn_id.clone(),
|
||||
body.room_subscriptions,
|
||||
);
|
||||
if body.conn_id.is_some() {
|
||||
services()
|
||||
.users
|
||||
.update_sync_subscriptions(connection_key, body.room_subscriptions);
|
||||
}
|
||||
|
||||
let mut rooms = BTreeMap::new();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue