mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: bump collab (#5042)
* chore: bump collab * chore: bump client api * chore: fix test
This commit is contained in:
@ -213,7 +213,9 @@ fn get_collab_doc_state(
|
||||
.read_txn()
|
||||
.load_doc_with_txn(uid, &collab_object.object_id, txn)
|
||||
})?;
|
||||
let doc_state = collab.encode_collab_v1().doc_state;
|
||||
let doc_state = collab
|
||||
.encode_collab_v1(|_| Ok::<(), PersistenceError>(()))?
|
||||
.doc_state;
|
||||
if doc_state.is_empty() {
|
||||
return Err(PersistenceError::UnexpectedEmptyUpdates);
|
||||
}
|
||||
@ -234,7 +236,9 @@ fn get_database_doc_state(
|
||||
})?;
|
||||
|
||||
let row_ids = get_database_row_ids(&collab).unwrap_or_default();
|
||||
let doc_state = collab.encode_collab_v1().doc_state;
|
||||
let doc_state = collab
|
||||
.encode_collab_v1(|_| Ok::<(), PersistenceError>(()))?
|
||||
.doc_state;
|
||||
if doc_state.is_empty() {
|
||||
return Err(PersistenceError::UnexpectedEmptyUpdates);
|
||||
}
|
||||
@ -257,7 +261,9 @@ async fn sync_folder(
|
||||
.read_txn()
|
||||
.load_doc_with_txn(uid, workspace_id, txn)
|
||||
})?;
|
||||
let doc_state = collab.encode_collab_v1().doc_state;
|
||||
let doc_state = collab
|
||||
.encode_collab_v1(|_| Ok::<(), PersistenceError>(()))?
|
||||
.doc_state;
|
||||
(
|
||||
MutexFolder::new(Folder::open(
|
||||
uid,
|
||||
@ -318,7 +324,10 @@ async fn sync_database_views(
|
||||
.map(|_| {
|
||||
(
|
||||
get_all_database_meta(&collab),
|
||||
collab.encode_collab_v1().doc_state,
|
||||
collab
|
||||
.encode_collab_v1(|_| Ok::<(), PersistenceError>(()))
|
||||
.unwrap()
|
||||
.doc_state,
|
||||
)
|
||||
})
|
||||
};
|
||||
|
@ -82,7 +82,9 @@ where
|
||||
if load_collab(user_id, write_txn, &view.id).is_err() {
|
||||
let collab = Arc::new(MutexCollab::new(origin.clone(), &view.id, vec![], false));
|
||||
let document = Document::create_with_data(collab, default_document_data())?;
|
||||
let encode = document.get_collab().encode_collab_v1();
|
||||
let encode = document
|
||||
.get_collab()
|
||||
.encode_collab_v1(|_| Ok::<(), PersistenceError>(()))?;
|
||||
write_txn.flush_doc_with(user_id, &view.id, &encode.doc_state, &encode.state_vector)?;
|
||||
event!(
|
||||
tracing::Level::INFO,
|
||||
|
@ -45,7 +45,9 @@ impl UserDataMigration for FavoriteV1AndWorkspaceArrayMigration {
|
||||
folder.add_favorite_view_ids(favorite_view_ids);
|
||||
}
|
||||
|
||||
let encode = folder.encode_collab_v1();
|
||||
let encode = folder
|
||||
.encode_collab_v1()
|
||||
.map_err(|err| PersistenceError::Internal(err.into()))?;
|
||||
write_txn.flush_doc_with(
|
||||
session.user_id,
|
||||
&session.user_workspace.id,
|
||||
|
@ -41,7 +41,9 @@ impl UserDataMigration for WorkspaceTrashMapToSectionMigration {
|
||||
folder.add_trash_view_ids(trash_ids);
|
||||
}
|
||||
|
||||
let encode = folder.encode_collab_v1();
|
||||
let encode = folder
|
||||
.encode_collab_v1()
|
||||
.map_err(|err| PersistenceError::Internal(err.into()))?;
|
||||
write_txn.flush_doc_with(
|
||||
session.user_id,
|
||||
&session.user_workspace.id,
|
||||
|
@ -213,6 +213,7 @@ pub(crate) fn import_appflowy_data_folder(
|
||||
|
||||
// create the content for the container view
|
||||
let import_container_doc_state = default_document_collab_data(&import_container_view_id)
|
||||
.map_err(|err| PersistenceError::InvalidData(err.to_string()))?
|
||||
.doc_state
|
||||
.to_vec();
|
||||
import_collab_object_with_doc_state(
|
||||
@ -419,27 +420,29 @@ where
|
||||
W: CollabKVAction<'a>,
|
||||
PersistenceError: From<W::Error>,
|
||||
{
|
||||
if let Ok(update) = Update::decode_v1(&collab.encode_collab_v1().doc_state) {
|
||||
let doc = Doc::new();
|
||||
{
|
||||
let mut txn = doc.transact_mut();
|
||||
txn.apply_update(update);
|
||||
drop(txn);
|
||||
}
|
||||
if let Ok(encode_collab) = collab.encode_collab_v1(|_| Ok::<(), PersistenceError>(())) {
|
||||
if let Ok(update) = Update::decode_v1(&encode_collab.doc_state) {
|
||||
let doc = Doc::new();
|
||||
{
|
||||
let mut txn = doc.transact_mut();
|
||||
txn.apply_update(update);
|
||||
drop(txn);
|
||||
}
|
||||
|
||||
let encoded_collab = doc.get_encoded_collab_v1();
|
||||
info!(
|
||||
"import collab:{} with len: {}",
|
||||
new_object_id,
|
||||
encoded_collab.doc_state.len()
|
||||
);
|
||||
if let Err(err) = w_txn.flush_doc(
|
||||
new_uid,
|
||||
&new_object_id,
|
||||
encoded_collab.state_vector.to_vec(),
|
||||
encoded_collab.doc_state.to_vec(),
|
||||
) {
|
||||
error!("import collab:{} failed: {:?}", new_object_id, err);
|
||||
let encoded_collab = doc.get_encoded_collab_v1();
|
||||
info!(
|
||||
"import collab:{} with len: {}",
|
||||
new_object_id,
|
||||
encoded_collab.doc_state.len()
|
||||
);
|
||||
if let Err(err) = w_txn.flush_doc(
|
||||
new_uid,
|
||||
&new_object_id,
|
||||
encoded_collab.state_vector.to_vec(),
|
||||
encoded_collab.doc_state.to_vec(),
|
||||
) {
|
||||
error!("import collab:{} failed: {:?}", new_object_id, err);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
event!(tracing::Level::ERROR, "decode v1 failed");
|
||||
@ -754,7 +757,8 @@ where
|
||||
.into_iter()
|
||||
.filter_map(|(oid, collab)| {
|
||||
collab
|
||||
.encode_collab_v1()
|
||||
.encode_collab_v1(|_| Ok::<(), PersistenceError>(()))
|
||||
.ok()?
|
||||
.encode_to_bytes()
|
||||
.ok()
|
||||
.map(|encoded_collab| (oid, encoded_collab))
|
||||
|
Reference in New Issue
Block a user