mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
feat: cloud workspace api (#4469)
* feat: workspace api * feat: added cloud apis for add and delete workspace * feat: add and delete workspace event handlers * chore: rust fmt * chore: save user workspace * test: add test * test: add test * chore: add to gitignore * feat: update api add name to workspace * chore: cargo clippy and rename to create * chore: add envrc and direnv to gitignore * chore: change name to create workspace instead of add workspace * chore: update client api rev * feat: add create workspace impl * chore: restore gitignore to original * test: fix create workspace event test * fix: change delete workspace input * fix: compile * fix: create workspace test * feat: add error code for request payload too large * chore: remove cargo backup files * feat: add is async option for upload file handler * chore: update client api version --------- Co-authored-by: nathan <nathan@appflowy.io>
This commit is contained in:
@ -8,7 +8,7 @@ use collab_folder::{
|
||||
Folder, FolderData, Section, SectionItem, TrashInfo, View, ViewLayout, ViewUpdate, Workspace,
|
||||
};
|
||||
use parking_lot::{Mutex, RwLock};
|
||||
use tracing::{error, event, info, instrument, Level};
|
||||
use tracing::{error, info, instrument};
|
||||
|
||||
use collab_integrate::collab_builder::{AppFlowyCollabBuilder, CollabBuilderConfig};
|
||||
use collab_integrate::{CollabKVDB, CollabPersistenceConfig};
|
||||
@ -156,16 +156,8 @@ impl FolderManager {
|
||||
) -> FlowyResult<()> {
|
||||
let folder_doc_state = self
|
||||
.cloud_service
|
||||
.get_collab_doc_state_f(workspace_id, user_id, CollabType::Folder, workspace_id)
|
||||
.get_folder_doc_state(workspace_id, user_id, CollabType::Folder, workspace_id)
|
||||
.await?;
|
||||
|
||||
event!(
|
||||
Level::INFO,
|
||||
"Get folder updates via {}, number of updates: {}",
|
||||
self.cloud_service.service_name(),
|
||||
folder_doc_state.len()
|
||||
);
|
||||
|
||||
if let Err(err) = self
|
||||
.initialize(
|
||||
user_id,
|
||||
@ -176,10 +168,7 @@ impl FolderManager {
|
||||
{
|
||||
// If failed to open folder with remote data, open from local disk. After open from the local
|
||||
// disk. the data will be synced to the remote server.
|
||||
error!(
|
||||
"Failed to initialize folder with error {}, fallback to use local data",
|
||||
err
|
||||
);
|
||||
error!("initialize folder with error {:?}, fallback local", err);
|
||||
self
|
||||
.initialize(
|
||||
user_id,
|
||||
@ -213,7 +202,7 @@ impl FolderManager {
|
||||
// when the user signs up for the first time.
|
||||
let result = self
|
||||
.cloud_service
|
||||
.get_collab_doc_state_f(workspace_id, user_id, CollabType::Folder, workspace_id)
|
||||
.get_folder_doc_state(workspace_id, user_id, CollabType::Folder, workspace_id)
|
||||
.await
|
||||
.map_err(FlowyError::from);
|
||||
|
||||
@ -249,8 +238,13 @@ impl FolderManager {
|
||||
pub async fn clear(&self, _user_id: i64) {}
|
||||
|
||||
#[tracing::instrument(level = "info", skip_all, err)]
|
||||
pub async fn create_workspace(&self, _params: CreateWorkspaceParams) -> FlowyResult<Workspace> {
|
||||
Err(FlowyError::not_support())
|
||||
pub async fn create_workspace(&self, params: CreateWorkspaceParams) -> FlowyResult<Workspace> {
|
||||
let uid = self.user.user_id()?;
|
||||
let new_workspace = self
|
||||
.cloud_service
|
||||
.create_workspace(uid, ¶ms.name)
|
||||
.await?;
|
||||
Ok(new_workspace)
|
||||
}
|
||||
|
||||
#[tracing::instrument(level = "info", skip_all, err)]
|
||||
|
Reference in New Issue
Block a user