chore: bump up collab version ()

This commit is contained in:
Nathan.fooo 2023-06-08 12:20:18 +08:00 committed by GitHub
parent d02b8c609b
commit 6e27d551d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 64 additions and 81 deletions
frontend
appflowy_tauri/src-tauri
rust-lib
Cargo.lockCargo.toml
flowy-core/src/deps_resolve
flowy-database2/src/services/field/type_options/checkbox_type_option
flowy-folder2/src
flowy-test/tests/database

View File

@ -34,12 +34,12 @@ default = ["custom-protocol"]
custom-protocol = ["tauri/custom-protocol"]
[patch.crates-io]
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "c611b6" }
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "c611b6" }
collab-persistence = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "c611b6" }
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "c611b6" }
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "c611b6" }
appflowy-integrate = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "c611b6" }
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "046a91" }
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "046a91" }
collab-persistence = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "046a91" }
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "046a91" }
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "046a91" }
appflowy-integrate = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "046a91" }
#collab = { path = "../../AppFlowy-Collab/collab" }
#collab-folder = { path = "../../AppFlowy-Collab/collab-folder" }

View File

@ -85,7 +85,7 @@ checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
[[package]]
name = "appflowy-integrate"
version = "0.1.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=c611b6#c611b6639ba089f7a24705ccb5904ed1b33be538"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=046a91#046a916cc357f4b6c88f4f5a66a84ca0e14c3c62"
dependencies = [
"anyhow",
"collab",
@ -887,7 +887,7 @@ dependencies = [
[[package]]
name = "collab"
version = "0.1.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=c611b6#c611b6639ba089f7a24705ccb5904ed1b33be538"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=046a91#046a916cc357f4b6c88f4f5a66a84ca0e14c3c62"
dependencies = [
"anyhow",
"bytes",
@ -905,7 +905,7 @@ dependencies = [
[[package]]
name = "collab-client-ws"
version = "0.1.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=c611b6#c611b6639ba089f7a24705ccb5904ed1b33be538"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=046a91#046a916cc357f4b6c88f4f5a66a84ca0e14c3c62"
dependencies = [
"bytes",
"collab-sync",
@ -923,7 +923,7 @@ dependencies = [
[[package]]
name = "collab-database"
version = "0.1.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=c611b6#c611b6639ba089f7a24705ccb5904ed1b33be538"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=046a91#046a916cc357f4b6c88f4f5a66a84ca0e14c3c62"
dependencies = [
"anyhow",
"async-trait",
@ -949,7 +949,7 @@ dependencies = [
[[package]]
name = "collab-derive"
version = "0.1.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=c611b6#c611b6639ba089f7a24705ccb5904ed1b33be538"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=046a91#046a916cc357f4b6c88f4f5a66a84ca0e14c3c62"
dependencies = [
"proc-macro2",
"quote",
@ -961,7 +961,7 @@ dependencies = [
[[package]]
name = "collab-document"
version = "0.1.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=c611b6#c611b6639ba089f7a24705ccb5904ed1b33be538"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=046a91#046a916cc357f4b6c88f4f5a66a84ca0e14c3c62"
dependencies = [
"anyhow",
"collab",
@ -978,7 +978,7 @@ dependencies = [
[[package]]
name = "collab-folder"
version = "0.1.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=c611b6#c611b6639ba089f7a24705ccb5904ed1b33be538"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=046a91#046a916cc357f4b6c88f4f5a66a84ca0e14c3c62"
dependencies = [
"anyhow",
"collab",
@ -997,7 +997,7 @@ dependencies = [
[[package]]
name = "collab-persistence"
version = "0.1.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=c611b6#c611b6639ba089f7a24705ccb5904ed1b33be538"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=046a91#046a916cc357f4b6c88f4f5a66a84ca0e14c3c62"
dependencies = [
"bincode",
"chrono",
@ -1017,7 +1017,7 @@ dependencies = [
[[package]]
name = "collab-plugins"
version = "0.1.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=c611b6#c611b6639ba089f7a24705ccb5904ed1b33be538"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=046a91#046a916cc357f4b6c88f4f5a66a84ca0e14c3c62"
dependencies = [
"anyhow",
"async-trait",
@ -1048,7 +1048,7 @@ dependencies = [
[[package]]
name = "collab-sync"
version = "0.1.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=c611b6#c611b6639ba089f7a24705ccb5904ed1b33be538"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=046a91#046a916cc357f4b6c88f4f5a66a84ca0e14c3c62"
dependencies = [
"bytes",
"collab",

View File

@ -33,11 +33,11 @@ opt-level = 3
incremental = false
[patch.crates-io]
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "c611b6" }
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "c611b6" }
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "c611b6" }
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "c611b6" }
appflowy-integrate = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "c611b6" }
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "046a91" }
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "046a91" }
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "046a91" }
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "046a91" }
appflowy-integrate = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "046a91" }
#collab = { path = "../AppFlowy-Collab/collab" }
#collab-folder = { path = "../AppFlowy-Collab/collab-folder" }

View File

@ -1,8 +1,7 @@
use std::sync::Arc;
use appflowy_integrate::{
calculate_snapshot_diff, try_encode_snapshot, CollabSnapshot, MutexCollab, PersistenceError,
Snapshot, SnapshotDB,
calculate_snapshot_diff, CollabSnapshot, PersistenceError, SnapshotPersistence,
};
use diesel::SqliteConnection;
@ -17,7 +16,7 @@ use lib_infra::util::timestamp;
pub struct SnapshotDBImpl(pub Arc<UserSession>);
impl SnapshotDB for SnapshotDBImpl {
impl SnapshotPersistence for SnapshotDBImpl {
fn get_snapshots(&self, _uid: i64, object_id: &str) -> Vec<CollabSnapshot> {
self
.0
@ -36,8 +35,7 @@ impl SnapshotDB for SnapshotDBImpl {
object_id: &str,
title: String,
collab_type: String,
snapshot: Snapshot,
collab: Arc<MutexCollab>,
snapshot_data: Vec<u8>,
) -> Result<(), PersistenceError> {
let object_id = object_id.to_string();
let weak_pool = Arc::downgrade(
@ -53,41 +51,31 @@ impl SnapshotDB for SnapshotDBImpl {
.get()
.map_err(|e| PersistenceError::Internal(Box::new(e)))?;
// Try to acquire a txn lock, if failed, it means there is a txn running, so we just ignore this snapshot
let result = try_encode_snapshot(
&collab
.lock()
.try_transaction()
.map_err(|e| PersistenceError::Internal(Box::new(e)))?,
snapshot,
);
let desc = match CollabSnapshotTableSql::get_latest_snapshot(&object_id, &conn) {
None => Ok("".to_string()),
Some(old_snapshot) => {
calculate_snapshot_diff(uid, &object_id, &old_snapshot.data, &snapshot_data)
},
}
.map_err(|e| PersistenceError::InvalidData(format!("{:?}", e)))?;
match result.and_then(|new_snapshot_data| {
let desc = match CollabSnapshotTableSql::get_latest_snapshot(&object_id, &conn) {
None => Ok("".to_string()),
Some(old_snapshot) => {
calculate_snapshot_diff(uid, &object_id, &old_snapshot.data, &new_snapshot_data)
},
}
.map_err(|e| PersistenceError::InvalidData(format!("{:?}", e)))?;
// Save the snapshot data to disk
let result = CollabSnapshotTableSql::create(
CollabSnapshotRow {
id: uuid::Uuid::new_v4().to_string(),
object_id: object_id.clone(),
title,
desc,
collab_type,
timestamp: timestamp(),
data: snapshot_data,
},
&conn,
)
.map_err(|e| PersistenceError::Internal(Box::new(e)));
// Save the snapshot to disk
CollabSnapshotTableSql::create(
CollabSnapshotRow {
id: uuid::Uuid::new_v4().to_string(),
object_id: object_id.clone(),
title,
desc,
collab_type,
timestamp: timestamp(),
data: new_snapshot_data,
},
&conn,
)
.map_err(|e| PersistenceError::Internal(Box::new(e)))
}) {
Ok(_) => {},
Err(e) => tracing::error!("create snapshot error: {:?}", e),
if let Err(e) = result {
tracing::error!("create snapshot error: {:?}", e);
}
}
Ok::<(), PersistenceError>(())

View File

@ -1,3 +1,13 @@
use std::cmp::Ordering;
use std::str::FromStr;
use collab::core::any_map::AnyMapExtension;
use collab_database::fields::{Field, TypeOptionData, TypeOptionDataBuilder};
use collab_database::rows::Cell;
use serde::{Deserialize, Serialize};
use flowy_error::FlowyResult;
use crate::entities::{CheckboxFilterPB, FieldType};
use crate::services::cell::{CellDataChangeset, CellDataDecoder};
use crate::services::field::{
@ -5,14 +15,6 @@ use crate::services::field::{
TypeOptionCellDataFilter, TypeOptionTransform,
};
use collab::core::any_map::AnyMapExtension;
use collab_database::fields::{Field, TypeOptionData, TypeOptionDataBuilder};
use collab_database::rows::Cell;
use flowy_error::FlowyResult;
use serde::{Deserialize, Serialize};
use std::cmp::Ordering;
use std::str::FromStr;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CheckboxTypeOption {
pub is_selected: bool,
@ -89,10 +91,7 @@ impl CellDataDecoder for CheckboxTypeOption {
if !decoded_field_type.is_checkbox() {
return Ok(Default::default());
}
let cell = self.parse_cell(cell);
println!("cell: {:?}", cell);
return cell;
self.parse_cell(cell)
}
fn stringify_cell_data(&self, cell_data: <Self as TypeOption>::CellData) -> String {

View File

@ -42,7 +42,7 @@ pub(crate) async fn open_workspace_handler(
None => Err(FlowyError::workspace_id().context("workspace id should not be empty")),
Some(workspace_id) => {
if workspace_id.is_empty() {
return Err(FlowyError::workspace_id().context("workspace id should not be empty"));
Err(FlowyError::workspace_id().context("workspace id should not be empty"))
} else {
let workspace = folder.open_workspace(&workspace_id).await?;
let views = folder.get_workspace_views(&workspace_id).await?;

View File

@ -66,7 +66,7 @@ impl Folder2Manager {
self.with_folder(Err(FlowyError::internal()), |folder| {
let workspace_pb_from_workspace = |workspace: Workspace, folder: &Folder| {
let views = get_workspace_view_pbs(&workspace.id, folder);
let workspace: WorkspacePB = (workspace.clone(), views).into();
let workspace: WorkspacePB = (workspace, views).into();
Ok::<WorkspacePB, FlowyError>(workspace)
};
@ -317,12 +317,6 @@ impl Folder2Manager {
created_at: timestamp(),
}]);
if let Some(view) = folder.get_current_view() {
if view == view_id {
folder.set_current_view("");
}
}
// notify the parent view that the view is moved to trash
send_notification(view_id, FolderNotification::DidMoveViewToTrash)
.payload(DeletedViewPB {

View File

@ -1,10 +1,12 @@
use std::convert::TryFrom;
use bytes::Bytes;
use flowy_database2::entities::{
CellChangesetPB, DatabaseLayoutPB, DatabaseViewIdPB, FieldType, SelectOptionCellDataPB,
};
use flowy_test::event_builder::EventBuilder;
use flowy_test::FlowyCoreTest;
use std::convert::TryFrom;
#[tokio::test]
async fn get_database_id_event_test() {
@ -248,7 +250,7 @@ async fn update_checkbox_cell_event_test() {
let field_id = fields[2].id.clone();
assert_eq!(fields[2].field_type, FieldType::Checkbox);
for input in vec!["yes", "true", "1"] {
for input in &["yes", "true", "1"] {
let error = test
.update_cell(CellChangesetPB {
view_id: grid_view.id.clone(),