mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: Bump collab (#5136)
* chore: bump collab * chore: bump collab * chore: bump collab * chore: fix test * chore: disable supabse test
This commit is contained in:
@ -2,7 +2,7 @@ use anyhow::Error;
|
||||
use client_api::entity::QueryCollabResult::{Failed, Success};
|
||||
use client_api::entity::{QueryCollab, QueryCollabParams};
|
||||
use client_api::error::ErrorCode::RecordNotFound;
|
||||
use collab::core::collab::DocStateSource;
|
||||
use collab::core::collab::DataSource;
|
||||
use collab::core::collab_plugin::EncodedCollab;
|
||||
use collab_entity::CollabType;
|
||||
use tracing::error;
|
||||
@ -73,10 +73,7 @@ where
|
||||
.flat_map(|(object_id, result)| match result {
|
||||
Success { encode_collab_v1 } => {
|
||||
match EncodedCollab::decode_from_bytes(&encode_collab_v1) {
|
||||
Ok(encode) => Some((
|
||||
object_id,
|
||||
DocStateSource::FromDocState(encode.doc_state.to_vec()),
|
||||
)),
|
||||
Ok(encode) => Some((object_id, DataSource::DocStateV1(encode.doc_state.to_vec()))),
|
||||
Err(err) => {
|
||||
error!("Failed to decode collab: {}", err);
|
||||
None
|
||||
|
@ -1,6 +1,6 @@
|
||||
use anyhow::Error;
|
||||
use client_api::entity::{QueryCollab, QueryCollabParams};
|
||||
use collab::core::collab::DocStateSource;
|
||||
use collab::core::collab::DataSource;
|
||||
use collab::core::origin::CollabOrigin;
|
||||
use collab_document::document::Document;
|
||||
use collab_entity::CollabType;
|
||||
@ -76,7 +76,7 @@ where
|
||||
.to_vec();
|
||||
let document = Document::from_doc_state(
|
||||
CollabOrigin::Empty,
|
||||
DocStateSource::FromDocState(doc_state),
|
||||
DataSource::DocStateV1(doc_state),
|
||||
&document_id,
|
||||
vec![],
|
||||
)?;
|
||||
|
@ -2,7 +2,7 @@ use anyhow::Error;
|
||||
use client_api::entity::{
|
||||
workspace_dto::CreateWorkspaceParam, CollabParams, QueryCollab, QueryCollabParams,
|
||||
};
|
||||
use collab::core::collab::DocStateSource;
|
||||
use collab::core::collab::DataSource;
|
||||
use collab::core::origin::CollabOrigin;
|
||||
use collab_entity::CollabType;
|
||||
use collab_folder::RepeatedViewIdentifier;
|
||||
@ -99,7 +99,7 @@ where
|
||||
let folder = Folder::from_collab_doc_state(
|
||||
uid,
|
||||
CollabOrigin::Empty,
|
||||
DocStateSource::FromDocState(doc_state),
|
||||
DataSource::DocStateV1(doc_state),
|
||||
&workspace_id,
|
||||
vec![],
|
||||
)?;
|
||||
|
@ -4,7 +4,7 @@ use std::sync::{Arc, Weak};
|
||||
use anyhow::Error;
|
||||
use chrono::{DateTime, Utc};
|
||||
use client_api::collab_sync::MsgId;
|
||||
use collab::core::collab::DocStateSource;
|
||||
use collab::core::collab::DataSource;
|
||||
use collab::preclude::merge_updates_v1;
|
||||
use collab_entity::CollabObject;
|
||||
use collab_plugins::cloud_storage::{
|
||||
@ -62,7 +62,7 @@ where
|
||||
true
|
||||
}
|
||||
|
||||
async fn get_doc_state(&self, object: &CollabObject) -> Result<DocStateSource, Error> {
|
||||
async fn get_doc_state(&self, object: &CollabObject) -> Result<DataSource, Error> {
|
||||
let postgrest = self.server.try_get_weak_postgrest()?;
|
||||
let action = FetchObjectUpdateAction::new(
|
||||
object.object_id.clone(),
|
||||
@ -70,7 +70,7 @@ where
|
||||
postgrest,
|
||||
);
|
||||
let doc_state = action.run().await?;
|
||||
Ok(DocStateSource::FromDocState(doc_state))
|
||||
Ok(DataSource::DocStateV1(doc_state))
|
||||
}
|
||||
|
||||
async fn get_snapshots(&self, object_id: &str, limit: usize) -> Vec<RemoteCollabSnapshot> {
|
||||
|
@ -1,5 +1,5 @@
|
||||
use anyhow::Error;
|
||||
use collab::core::collab::DocStateSource;
|
||||
use collab::core::collab::DataSource;
|
||||
use collab::core::origin::CollabOrigin;
|
||||
use collab_document::blocks::DocumentData;
|
||||
use collab_document::document::Document;
|
||||
@ -96,7 +96,7 @@ where
|
||||
let doc_state = action.run_with_fix_interval(5, 10).await?;
|
||||
let document = Document::from_doc_state(
|
||||
CollabOrigin::Empty,
|
||||
DocStateSource::FromDocState(doc_state),
|
||||
DataSource::DocStateV1(doc_state),
|
||||
&document_id,
|
||||
vec![],
|
||||
)?;
|
||||
|
@ -2,7 +2,7 @@ use std::str::FromStr;
|
||||
|
||||
use anyhow::{anyhow, Error};
|
||||
use chrono::{DateTime, Utc};
|
||||
use collab::core::collab::DocStateSource;
|
||||
use collab::core::collab::DataSource;
|
||||
use collab::core::origin::CollabOrigin;
|
||||
use collab_entity::CollabType;
|
||||
use serde_json::Value;
|
||||
@ -105,7 +105,7 @@ where
|
||||
let folder = Folder::from_collab_doc_state(
|
||||
uid,
|
||||
CollabOrigin::Empty,
|
||||
DocStateSource::FromDocState(doc_state),
|
||||
DataSource::DocStateV1(doc_state),
|
||||
&workspace_id,
|
||||
vec![],
|
||||
)?;
|
||||
|
@ -7,7 +7,7 @@ use std::time::Duration;
|
||||
|
||||
use anyhow::Error;
|
||||
use chrono::{DateTime, Utc};
|
||||
use collab::core::collab::DocStateSource;
|
||||
use collab::core::collab::DataSource;
|
||||
use collab_entity::{CollabObject, CollabType};
|
||||
use collab_plugins::cloud_storage::RemoteCollabSnapshot;
|
||||
use serde_json::Value;
|
||||
@ -284,7 +284,7 @@ pub async fn batch_get_updates_from_server(
|
||||
match parser_updates_form_json(record.clone(), &postgrest.secret()) {
|
||||
Ok(items) => {
|
||||
if items.is_empty() {
|
||||
updates_by_oid.insert(oid.to_string(), DocStateSource::FromDisk);
|
||||
updates_by_oid.insert(oid.to_string(), DataSource::Disk);
|
||||
} else {
|
||||
let updates = items
|
||||
.iter()
|
||||
@ -293,7 +293,7 @@ pub async fn batch_get_updates_from_server(
|
||||
|
||||
let doc_state = merge_updates_v1(&updates)
|
||||
.map_err(|err| anyhow::anyhow!("merge updates failed: {:?}", err))?;
|
||||
updates_by_oid.insert(oid.to_string(), DocStateSource::FromDocState(doc_state));
|
||||
updates_by_oid.insert(oid.to_string(), DataSource::DocStateV1(doc_state));
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
|
@ -8,6 +8,7 @@ use std::time::Duration;
|
||||
use anyhow::Error;
|
||||
use collab::core::collab::MutexCollab;
|
||||
use collab::core::origin::CollabOrigin;
|
||||
use collab::preclude::Collab;
|
||||
use collab_entity::{CollabObject, CollabType};
|
||||
use parking_lot::RwLock;
|
||||
use serde_json::Value;
|
||||
@ -686,12 +687,12 @@ impl RealtimeEventHandler for RealtimeCollabUpdateHandler {
|
||||
|
||||
fn default_workspace_doc_state(collab_object: &CollabObject) -> Vec<u8> {
|
||||
let workspace_id = collab_object.object_id.clone();
|
||||
let collab = Arc::new(MutexCollab::new(
|
||||
let collab = Arc::new(MutexCollab::new(Collab::new_with_origin(
|
||||
CollabOrigin::Empty,
|
||||
&collab_object.object_id,
|
||||
vec![],
|
||||
false,
|
||||
));
|
||||
)));
|
||||
let workspace = Workspace::new(workspace_id, "My workspace".to_string(), collab_object.uid);
|
||||
let folder = Folder::create(collab_object.uid, collab, None, FolderData::new(workspace));
|
||||
folder.encode_collab_v1().unwrap().doc_state.to_vec()
|
||||
|
@ -28,7 +28,7 @@ pub(crate) const CREATED_AT: &str = "created_at";
|
||||
pub fn table_name(ty: &CollabType) -> String {
|
||||
match ty {
|
||||
CollabType::DatabaseRow => format!("{}_database_row", AF_COLLAB_UPDATE_TABLE),
|
||||
CollabType::Document | CollabType::Empty => format!("{}_document", AF_COLLAB_UPDATE_TABLE),
|
||||
CollabType::Document | CollabType::Unknown => format!("{}_document", AF_COLLAB_UPDATE_TABLE),
|
||||
CollabType::Database => format!("{}_database", AF_COLLAB_UPDATE_TABLE),
|
||||
CollabType::WorkspaceDatabase => format!("{}_w_database", AF_COLLAB_UPDATE_TABLE),
|
||||
CollabType::Folder => format!("{}_folder", AF_COLLAB_UPDATE_TABLE),
|
||||
@ -44,6 +44,6 @@ pub fn partition_key(collab_type: &CollabType) -> i32 {
|
||||
CollabType::Folder => 3,
|
||||
CollabType::DatabaseRow => 4,
|
||||
CollabType::UserAwareness => 5,
|
||||
CollabType::Empty => 0,
|
||||
CollabType::Unknown => 0,
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
use collab::core::collab::DocStateSource;
|
||||
use collab::core::collab::DataSource;
|
||||
use collab_entity::{CollabObject, CollabType};
|
||||
use uuid::Uuid;
|
||||
|
||||
@ -53,10 +53,11 @@ async fn supabase_create_database_test() {
|
||||
assert_eq!(updates_by_oid.len(), 3);
|
||||
for (_, source) in updates_by_oid {
|
||||
match source {
|
||||
DocStateSource::FromDisk => panic!("should not be from disk"),
|
||||
DocStateSource::FromDocState(doc_state) => {
|
||||
DataSource::Disk => panic!("should not be from disk"),
|
||||
DataSource::DocStateV1(doc_state) => {
|
||||
assert_eq!(doc_state.len(), 2);
|
||||
},
|
||||
DataSource::DocStateV2(_) => {},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,8 +2,9 @@ use flowy_storage::ObjectStorageService;
|
||||
use std::collections::HashMap;
|
||||
use std::sync::Arc;
|
||||
|
||||
use collab::core::collab::{DocStateSource, MutexCollab};
|
||||
use collab::core::collab::{DataSource, MutexCollab};
|
||||
use collab::core::origin::CollabOrigin;
|
||||
use collab::preclude::Collab;
|
||||
use collab_plugins::cloud_storage::RemoteCollabStorage;
|
||||
use uuid::Uuid;
|
||||
|
||||
@ -121,16 +122,16 @@ pub async fn print_encryption_folder_snapshot(
|
||||
.await
|
||||
.pop()
|
||||
.unwrap();
|
||||
let collab = Arc::new(
|
||||
MutexCollab::new_with_doc_state(
|
||||
let collab = Arc::new(MutexCollab::new(
|
||||
Collab::new_with_source(
|
||||
CollabOrigin::Empty,
|
||||
folder_id,
|
||||
DocStateSource::FromDocState(snapshot.blob),
|
||||
DataSource::DocStateV1(snapshot.blob),
|
||||
vec![],
|
||||
false,
|
||||
)
|
||||
.unwrap(),
|
||||
);
|
||||
));
|
||||
let folder_data = Folder::open(uid, collab, None)
|
||||
.unwrap()
|
||||
.get_folder_data()
|
||||
|
Reference in New Issue
Block a user