chore: remove from editing collab param in get encode collab method
This commit is contained in:
parent
dfe780d30c
commit
ed07104aeb
|
|
@ -114,7 +114,6 @@ pub trait CollabStorage: Send + Sync + 'static {
|
||||||
&self,
|
&self,
|
||||||
origin: GetCollabOrigin,
|
origin: GetCollabOrigin,
|
||||||
params: QueryCollabParams,
|
params: QueryCollabParams,
|
||||||
from_editing_collab: bool,
|
|
||||||
) -> AppResult<EncodedCollab>;
|
) -> AppResult<EncodedCollab>;
|
||||||
|
|
||||||
async fn batch_get_collab(
|
async fn batch_get_collab(
|
||||||
|
|
|
||||||
|
|
@ -131,47 +131,6 @@ where
|
||||||
.await?;
|
.await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
async fn get_encode_collab_from_editing(&self, oid: &str) -> Option<EncodedCollab> {
|
|
||||||
let object_id = oid.to_string();
|
|
||||||
let (ret, rx) = tokio::sync::oneshot::channel();
|
|
||||||
let timeout_duration = Duration::from_secs(5);
|
|
||||||
|
|
||||||
// Attempt to send the command to the realtime server
|
|
||||||
if let Err(err) = self
|
|
||||||
.rt_cmd_sender
|
|
||||||
.send(CollaborationCommand::GetEncodeCollab { object_id, ret })
|
|
||||||
.await
|
|
||||||
{
|
|
||||||
error!(
|
|
||||||
"Failed to send get encode collab command to realtime server: {}",
|
|
||||||
err
|
|
||||||
);
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Await the response from the realtime server with a timeout
|
|
||||||
match timeout(timeout_duration, rx).await {
|
|
||||||
Ok(Ok(Some(encode_collab))) => Some(encode_collab),
|
|
||||||
Ok(Ok(None)) => {
|
|
||||||
trace!("Editing collab not found: `{}`", oid);
|
|
||||||
None
|
|
||||||
},
|
|
||||||
Ok(Err(err)) => {
|
|
||||||
error!(
|
|
||||||
"Failed to get collab from realtime server `{}`: {}",
|
|
||||||
oid, err
|
|
||||||
);
|
|
||||||
None
|
|
||||||
},
|
|
||||||
Err(_) => {
|
|
||||||
error!(
|
|
||||||
"Timeout trying to read collab `{}` from realtime server",
|
|
||||||
oid
|
|
||||||
);
|
|
||||||
None
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async fn batch_get_encode_collab_from_editing(
|
async fn batch_get_encode_collab_from_editing(
|
||||||
&self,
|
&self,
|
||||||
|
|
@ -397,12 +356,11 @@ where
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[instrument(level = "trace", skip_all, fields(oid = %params.object_id, from_editing_collab = %from_editing_collab))]
|
#[instrument(level = "trace", skip_all, fields(oid = %params.object_id))]
|
||||||
async fn get_encode_collab(
|
async fn get_encode_collab(
|
||||||
&self,
|
&self,
|
||||||
origin: GetCollabOrigin,
|
origin: GetCollabOrigin,
|
||||||
params: QueryCollabParams,
|
params: QueryCollabParams,
|
||||||
from_editing_collab: bool,
|
|
||||||
) -> AppResult<EncodedCollab> {
|
) -> AppResult<EncodedCollab> {
|
||||||
params.validate()?;
|
params.validate()?;
|
||||||
match origin {
|
match origin {
|
||||||
|
|
@ -416,18 +374,6 @@ where
|
||||||
GetCollabOrigin::Server => {},
|
GetCollabOrigin::Server => {},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Early return if editing collab is initialized, as it indicates no need to query further.
|
|
||||||
if from_editing_collab {
|
|
||||||
// Attempt to retrieve encoded collab from the editing collab
|
|
||||||
if let Some(value) = self.get_encode_collab_from_editing(¶ms.object_id).await {
|
|
||||||
trace!(
|
|
||||||
"Did get encode collab {} from editing collab",
|
|
||||||
params.object_id
|
|
||||||
);
|
|
||||||
return Ok(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let encode_collab = self
|
let encode_collab = self
|
||||||
.cache
|
.cache
|
||||||
.get_encode_collab(¶ms.workspace_id, params.inner)
|
.get_encode_collab(¶ms.workspace_id, params.inner)
|
||||||
|
|
|
||||||
|
|
@ -1226,7 +1226,7 @@ impl CollabPersister {
|
||||||
);
|
);
|
||||||
let result = self
|
let result = self
|
||||||
.storage
|
.storage
|
||||||
.get_encode_collab(GetCollabOrigin::Server, params, false)
|
.get_encode_collab(GetCollabOrigin::Server, params)
|
||||||
.await;
|
.await;
|
||||||
match result {
|
match result {
|
||||||
Ok(encoded_collab) => encoded_collab.doc_state,
|
Ok(encoded_collab) => encoded_collab.doc_state,
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,7 @@ where
|
||||||
let params = QueryCollabParams::new(object_id, collab_type.clone(), workspace_id);
|
let params = QueryCollabParams::new(object_id, collab_type.clone(), workspace_id);
|
||||||
let res = self
|
let res = self
|
||||||
.storage
|
.storage
|
||||||
.get_encode_collab(GetCollabOrigin::Server, params, false)
|
.get_encode_collab(GetCollabOrigin::Server, params)
|
||||||
.await;
|
.await;
|
||||||
let state_vector = match res {
|
let state_vector = match res {
|
||||||
Ok(collab) => Collab::new_with_source(
|
Ok(collab) => Collab::new_with_source(
|
||||||
|
|
@ -186,7 +186,7 @@ where
|
||||||
S: CollabStorage,
|
S: CollabStorage,
|
||||||
{
|
{
|
||||||
let encode_collab = storage
|
let encode_collab = storage
|
||||||
.get_encode_collab(GetCollabOrigin::User { uid }, params.clone(), false)
|
.get_encode_collab(GetCollabOrigin::User { uid }, params.clone())
|
||||||
.await?;
|
.await?;
|
||||||
let result = Collab::new_with_source(
|
let result = Collab::new_with_source(
|
||||||
CollabOrigin::Server,
|
CollabOrigin::Server,
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,7 @@ impl IndexerProvider {
|
||||||
match &cid.collab_type {
|
match &cid.collab_type {
|
||||||
CollabType::Document => {
|
CollabType::Document => {
|
||||||
let collab = match storage
|
let collab = match storage
|
||||||
.get_encode_collab(GetCollabOrigin::Server, cid.clone().into(), false)
|
.get_encode_collab(GetCollabOrigin::Server, cid.clone().into())
|
||||||
.await {
|
.await {
|
||||||
Ok(collab) => collab,
|
Ok(collab) => collab,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
|
|
|
||||||
|
|
@ -867,7 +867,7 @@ async fn get_collab_handler(
|
||||||
let object_id = params.object_id.clone();
|
let object_id = params.object_id.clone();
|
||||||
let encode_collab = state
|
let encode_collab = state
|
||||||
.collab_access_control_storage
|
.collab_access_control_storage
|
||||||
.get_encode_collab(GetCollabOrigin::User { uid }, params, true)
|
.get_encode_collab(GetCollabOrigin::User { uid }, params)
|
||||||
.await
|
.await
|
||||||
.map_err(AppResponseError::from)?;
|
.map_err(AppResponseError::from)?;
|
||||||
|
|
||||||
|
|
@ -903,7 +903,7 @@ async fn v1_get_collab_handler(
|
||||||
|
|
||||||
let encode_collab = state
|
let encode_collab = state
|
||||||
.collab_access_control_storage
|
.collab_access_control_storage
|
||||||
.get_encode_collab(GetCollabOrigin::User { uid }, param, true)
|
.get_encode_collab(GetCollabOrigin::User { uid }, param)
|
||||||
.await
|
.await
|
||||||
.map_err(AppResponseError::from)?;
|
.map_err(AppResponseError::from)?;
|
||||||
|
|
||||||
|
|
@ -1188,7 +1188,6 @@ async fn create_collab_snapshot_handler(
|
||||||
.get_encode_collab(
|
.get_encode_collab(
|
||||||
GetCollabOrigin::User { uid },
|
GetCollabOrigin::User { uid },
|
||||||
QueryCollabParams::new(&object_id, collab_type.clone(), &workspace_id),
|
QueryCollabParams::new(&object_id, collab_type.clone(), &workspace_id),
|
||||||
true,
|
|
||||||
)
|
)
|
||||||
.await?
|
.await?
|
||||||
.doc_state;
|
.doc_state;
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,6 @@ pub async fn get_latest_collab_encoded(
|
||||||
collab_type,
|
collab_type,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
true,
|
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue