WIP: Fix compile errors by commenting stuff out

This commit is contained in:
Nathan Sobo 2022-05-07 13:59:21 -06:00
parent 4f06dca78b
commit 93dae88cac
3 changed files with 60 additions and 46 deletions

View file

@ -601,7 +601,7 @@ impl Db for PostgresDb {
macro_rules! id_type { macro_rules! id_type {
($name:ident) => { ($name:ident) => {
#[derive( #[derive(
Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, sqlx::Type, Serialize, Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, sqlx::Type, Serialize,
)] )]
#[sqlx(transparent)] #[sqlx(transparent)]
#[serde(transparent)] #[serde(transparent)]
@ -1181,20 +1181,20 @@ pub mod tests {
async fn get_contacts(&self, id: UserId) -> Result<Contacts> { async fn get_contacts(&self, id: UserId) -> Result<Contacts> {
self.background.simulate_random_delay().await; self.background.simulate_random_delay().await;
let mut current = Vec::new(); let mut current = Vec::new();
let mut requests_sent = Vec::new(); let mut outgoing_requests = Vec::new();
let mut requests_received = Vec::new(); let mut incoming_requests = Vec::new();
for contact in self.contacts.lock().iter() { for contact in self.contacts.lock().iter() {
if contact.requester_id == id { if contact.requester_id == id {
if contact.accepted { if contact.accepted {
current.push(contact.responder_id); current.push(contact.responder_id);
} else { } else {
requests_sent.push(contact.responder_id); outgoing_requests.push(contact.responder_id);
} }
} else if contact.responder_id == id { } else if contact.responder_id == id {
if contact.accepted { if contact.accepted {
current.push(contact.requester_id); current.push(contact.requester_id);
} else { } else {
requests_received.push(IncomingContactRequest { incoming_requests.push(IncomingContactRequest {
requesting_user_id: contact.requester_id, requesting_user_id: contact.requester_id,
should_notify: contact.should_notify, should_notify: contact.should_notify,
}); });

View file

@ -408,7 +408,8 @@ impl Server {
) -> Result<()> { ) -> Result<()> {
let mut state = self.store_mut().await; let mut state = self.store_mut().await;
let project = state.unregister_project(request.payload.project_id, request.sender_id)?; let project = state.unregister_project(request.payload.project_id, request.sender_id)?;
self.update_contacts_for_users(&*state, &project.authorized_user_ids()); // TODO
// self.update_contacts_for_users(&*state, &project.authorized_user_ids());
Ok(()) Ok(())
} }
@ -419,7 +420,8 @@ impl Server {
) -> Result<()> { ) -> Result<()> {
let mut state = self.store_mut().await; let mut state = self.store_mut().await;
let project = state.share_project(request.payload.project_id, request.sender_id)?; let project = state.share_project(request.payload.project_id, request.sender_id)?;
self.update_contacts_for_users(&mut *state, &project.authorized_user_ids); // TODO
// self.update_contacts_for_users(&mut *state, &project.authorized_user_ids);
response.send(proto::Ack {})?; response.send(proto::Ack {})?;
Ok(()) Ok(())
} }
@ -435,7 +437,8 @@ impl Server {
self.peer self.peer
.send(conn_id, proto::UnshareProject { project_id }) .send(conn_id, proto::UnshareProject { project_id })
}); });
self.update_contacts_for_users(&mut *state, &project.authorized_user_ids); // TODO
// self.update_contacts_for_users(&mut *state, &project.authorized_user_ids);
Ok(()) Ok(())
} }
@ -511,7 +514,8 @@ impl Server {
}, },
) )
}); });
self.update_contacts_for_users(state, &contact_user_ids); // TODO
// self.update_contacts_for_users(state, &contact_user_ids);
response.send(response_payload)?; response.send(response_payload)?;
Ok(()) Ok(())
} }
@ -533,7 +537,8 @@ impl Server {
}, },
) )
}); });
self.update_contacts_for_users(&*state, &worktree.authorized_user_ids); // TODO
// self.update_contacts_for_users(&*state, &worktree.authorized_user_ids);
Ok(()) Ok(())
} }
@ -571,7 +576,8 @@ impl Server {
self.peer self.peer
.forward_send(request.sender_id, connection_id, request.payload.clone()) .forward_send(request.sender_id, connection_id, request.payload.clone())
}); });
self.update_contacts_for_users(&*state, &contact_user_ids); // TODO
// self.update_contacts_for_users(&*state, &contact_user_ids);
response.send(proto::Ack {})?; response.send(proto::Ack {})?;
Ok(()) Ok(())
} }
@ -594,7 +600,8 @@ impl Server {
}, },
) )
}); });
self.update_contacts_for_users(&*state, &worktree.authorized_user_ids); // TODO
// self.update_contacts_for_users(&*state, &worktree.authorized_user_ids);
Ok(()) Ok(())
} }
@ -1315,12 +1322,17 @@ pub async fn handle_websocket_request(
} }
let socket_address = socket_address.to_string(); let socket_address = socket_address.to_string();
ws.on_upgrade(move |socket| { ws.on_upgrade(move |socket| {
use util::ResultExt;
let socket = socket let socket = socket
.map_ok(to_tungstenite_message) .map_ok(to_tungstenite_message)
.err_into() .err_into()
.with(|message| async move { Ok(to_axum_message(message)) }); .with(|message| async move { Ok(to_axum_message(message)) });
let connection = Connection::new(Box::pin(socket)); let connection = Connection::new(Box::pin(socket));
server.handle_connection(connection, socket_address, user_id, None, RealExecutor) async move {
server.handle_connection(connection, socket_address, user_id, None, RealExecutor)
.await
.log_err();
}
}) })
} }
@ -5769,15 +5781,16 @@ mod tests {
if let Some(guest_err) = guest_err { if let Some(guest_err) = guest_err {
log::error!("{} error - {}", guest.username, guest_err); log::error!("{} error - {}", guest.username, guest_err);
} }
let contacts = server // TODO
.store // let contacts = server
.read() // .store
.await // .read()
.contacts_for_user(guest.current_user_id(&guest_cx)); // .await
assert!(!contacts // .contacts_for_user(guest.current_user_id(&guest_cx));
.iter() // assert!(!contacts
.flat_map(|contact| &contact.projects) // .iter()
.any(|project| project.id == host_project_id)); // .flat_map(|contact| &contact.projects)
// .any(|project| project.id == host_project_id));
guest guest
.project .project
.as_ref() .as_ref()
@ -5848,22 +5861,23 @@ mod tests {
.as_ref() .as_ref()
.unwrap() .unwrap()
.read_with(&guest_cx, |project, _| assert!(project.is_read_only())); .read_with(&guest_cx, |project, _| assert!(project.is_read_only()));
for user_id in &user_ids { // TODO
for contact in server.store.read().await.contacts_for_user(*user_id) { // for user_id in &user_ids {
assert_ne!( // for contact in server.store.read().await.contacts_for_user(*user_id) {
contact.user_id, removed_guest_id.0 as u64, // assert_ne!(
"removed guest is still a contact of another peer" // contact.user_id, removed_guest_id.0 as u64,
); // "removed guest is still a contact of another peer"
for project in contact.projects { // );
for project_guest_id in project.guests { // for project in contact.projects {
assert_ne!( // for project_guest_id in project.guests {
project_guest_id, removed_guest_id.0 as u64, // assert_ne!(
"removed guest appears as still participating on a project" // project_guest_id, removed_guest_id.0 as u64,
); // "removed guest appears as still participating on a project"
} // );
} // }
} // }
} // }
// }
log::info!("{} removed", guest.username); log::info!("{} removed", guest.username);
available_guests.push(guest.username.clone()); available_guests.push(guest.username.clone());

View file

@ -246,13 +246,13 @@ impl Store {
} }
pub fn project_metadata_for_user(&self, user_id: UserId) -> Vec<proto::ProjectMetadata> { pub fn project_metadata_for_user(&self, user_id: UserId) -> Vec<proto::ProjectMetadata> {
let project_ids = self let connection_ids = self.connections_by_user_id.get(&user_id);
.connections_by_user_id let project_ids = connection_ids.iter().flat_map(|connection_ids| {
.get(&user_id) connection_ids
.unwrap_or_else(|| &HashSet::default()) .iter()
.iter() .filter_map(|connection_id| self.connections.get(connection_id))
.filter_map(|connection_id| self.connections.get(connection_id)) .flat_map(|connection| connection.projects.iter().copied())
.flat_map(|connection| connection.projects.iter().copied()); });
let mut metadata = Vec::new(); let mut metadata = Vec::new();
for project_id in project_ids { for project_id in project_ids {
@ -263,7 +263,7 @@ impl Store {
worktree_root_names: project worktree_root_names: project
.worktrees .worktrees
.values() .values()
.map(|worktree| worktree.root_name) .map(|worktree| worktree.root_name.clone())
.collect(), .collect(),
guests: project guests: project
.share .share