chore: use ResponseActFuture (#1490)

* chore: use ResponseActFuture

* chore: bump collab
This commit is contained in:
Nathan.fooo
2025-06-27 17:24:15 +08:00
committed by GitHub
parent aa4dbcf73f
commit 8658d05cda
4 changed files with 21 additions and 23 deletions

16
Cargo.lock generated
View File

@@ -2100,7 +2100,7 @@ dependencies = [
[[package]]
name = "collab"
version = "0.2.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc#b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e59260e524f33104b0ddcd6bb8f6218cad0f7e18#e59260e524f33104b0ddcd6bb8f6218cad0f7e18"
dependencies = [
"anyhow",
"arc-swap",
@@ -2126,7 +2126,7 @@ dependencies = [
[[package]]
name = "collab-database"
version = "0.2.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc#b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e59260e524f33104b0ddcd6bb8f6218cad0f7e18#e59260e524f33104b0ddcd6bb8f6218cad0f7e18"
dependencies = [
"anyhow",
"async-trait",
@@ -2166,7 +2166,7 @@ dependencies = [
[[package]]
name = "collab-document"
version = "0.2.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc#b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e59260e524f33104b0ddcd6bb8f6218cad0f7e18#e59260e524f33104b0ddcd6bb8f6218cad0f7e18"
dependencies = [
"anyhow",
"arc-swap",
@@ -2187,7 +2187,7 @@ dependencies = [
[[package]]
name = "collab-entity"
version = "0.2.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc#b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e59260e524f33104b0ddcd6bb8f6218cad0f7e18#e59260e524f33104b0ddcd6bb8f6218cad0f7e18"
dependencies = [
"anyhow",
"bytes",
@@ -2207,7 +2207,7 @@ dependencies = [
[[package]]
name = "collab-folder"
version = "0.2.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc#b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e59260e524f33104b0ddcd6bb8f6218cad0f7e18#e59260e524f33104b0ddcd6bb8f6218cad0f7e18"
dependencies = [
"anyhow",
"arc-swap",
@@ -2229,7 +2229,7 @@ dependencies = [
[[package]]
name = "collab-importer"
version = "0.1.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc#b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e59260e524f33104b0ddcd6bb8f6218cad0f7e18#e59260e524f33104b0ddcd6bb8f6218cad0f7e18"
dependencies = [
"anyhow",
"async-recursion",
@@ -2268,7 +2268,7 @@ dependencies = [
[[package]]
name = "collab-plugins"
version = "0.2.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc#b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e59260e524f33104b0ddcd6bb8f6218cad0f7e18#e59260e524f33104b0ddcd6bb8f6218cad0f7e18"
dependencies = [
"anyhow",
"async-stream",
@@ -2375,7 +2375,7 @@ dependencies = [
[[package]]
name = "collab-user"
version = "0.2.0"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc#b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc"
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e59260e524f33104b0ddcd6bb8f6218cad0f7e18#e59260e524f33104b0ddcd6bb8f6218cad0f7e18"
dependencies = [
"anyhow",
"collab",

View File

@@ -307,14 +307,14 @@ lto = false
[patch.crates-io]
# It's diffcult to resovle different version with the same crate used in AppFlowy Frontend and the Client-API crate.
# So using patch to workaround this issue.
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc" }
collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc" }
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc" }
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc" }
collab-user = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc" }
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc" }
collab-importer = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc" }
collab-plugins = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "b309bbaf5657ab72f3fb8fd40a2bdfcd0237defc" }
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e59260e524f33104b0ddcd6bb8f6218cad0f7e18" }
collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e59260e524f33104b0ddcd6bb8f6218cad0f7e18" }
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e59260e524f33104b0ddcd6bb8f6218cad0f7e18" }
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e59260e524f33104b0ddcd6bb8f6218cad0f7e18" }
collab-user = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e59260e524f33104b0ddcd6bb8f6218cad0f7e18" }
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e59260e524f33104b0ddcd6bb8f6218cad0f7e18" }
collab-importer = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e59260e524f33104b0ddcd6bb8f6218cad0f7e18" }
collab-plugins = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e59260e524f33104b0ddcd6bb8f6218cad0f7e18" }
[features]
history = []

View File

@@ -89,7 +89,7 @@ impl CollabManager {
Ok(())
}
pub async fn get_folder(&self, workspace_id: WorkspaceId) -> AppResult<Folder> {
pub async fn build_folder(&self, workspace_id: WorkspaceId) -> AppResult<Folder> {
let query = QueryCollab::new(workspace_id, CollabType::Folder);
let encoded_collab = self
.collab_cache

View File

@@ -85,9 +85,9 @@ impl Workspace {
let _ = msg.ack.send(result);
}
async fn get_folder_instance(store: Arc<CollabManager>, msg: WorkspaceFolder) {
async fn get_folder(store: Arc<CollabManager>, msg: WorkspaceFolder) {
let WorkspaceFolder { workspace_id, ack } = msg;
let result = store.get_folder(workspace_id).await;
let result = store.build_folder(workspace_id).await;
let _ = ack.send(result);
}
@@ -598,7 +598,7 @@ impl Handler<PublishUpdate> for Workspace {
}
impl Handler<WorkspaceFolder> for Workspace {
type Result = AtomicResponse<Self, ()>;
type Result = ResponseActFuture<Self, ()>;
fn handle(&mut self, msg: WorkspaceFolder, ctx: &mut Self::Context) -> Self::Result {
let store = self.manager.clone();
if self.sessions_by_client_id.is_empty() {
@@ -606,9 +606,7 @@ impl Handler<WorkspaceFolder> for Workspace {
// so if there are no active sessions, we should schedule a termination
self.schedule_terminate(ctx);
}
AtomicResponse::new(Box::pin(
Self::get_folder_instance(store, msg).into_actor(self),
))
Box::pin(Self::get_folder(store, msg).into_actor(self))
}
}