mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: cell data operation (#1656)
* chore: get all cells for specific field * chore: auto format clippy wanrings * chore: get cells for specific field type
This commit is contained in:
@ -45,7 +45,7 @@ impl std::convert::From<TrashPB> for TrashRevision {
|
||||
}
|
||||
}
|
||||
}
|
||||
#[derive(PartialEq, Debug, Default, ProtoBuf, Clone)]
|
||||
#[derive(PartialEq, Eq, Debug, Default, ProtoBuf, Clone)]
|
||||
pub struct RepeatedTrashPB {
|
||||
#[pb(index = 1)]
|
||||
pub items: Vec<TrashPB>,
|
||||
@ -158,7 +158,7 @@ impl std::convert::From<Vec<TrashRevision>> for RepeatedTrashIdPB {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(PartialEq, ProtoBuf, Default, Debug, Clone)]
|
||||
#[derive(PartialEq, Eq, ProtoBuf, Default, Debug, Clone)]
|
||||
pub struct TrashIdPB {
|
||||
#[pb(index = 1)]
|
||||
pub id: String,
|
||||
|
@ -41,7 +41,7 @@ impl std::convert::From<WorkspaceRevision> for WorkspacePB {
|
||||
}
|
||||
}
|
||||
}
|
||||
#[derive(PartialEq, Debug, Default, ProtoBuf)]
|
||||
#[derive(PartialEq, Eq, Debug, Default, ProtoBuf)]
|
||||
pub struct RepeatedWorkspacePB {
|
||||
#[pb(index = 1)]
|
||||
pub items: Vec<WorkspacePB>,
|
||||
|
@ -166,7 +166,7 @@ impl FolderManager {
|
||||
}
|
||||
tracing::debug!("Initialize folder editor");
|
||||
let folder_id = FolderId::new(user_id);
|
||||
let _ = self.persistence.initialize(user_id, &folder_id).await?;
|
||||
self.persistence.initialize(user_id, &folder_id).await?;
|
||||
|
||||
let pool = self.persistence.db_pool()?;
|
||||
let object_id = folder_id.as_ref();
|
||||
@ -185,8 +185,8 @@ impl FolderManager {
|
||||
let folder_editor = FolderEditor::new(user_id, &folder_id, token, rev_manager, self.web_socket.clone()).await?;
|
||||
*self.folder_editor.write().await = Some(Arc::new(folder_editor));
|
||||
|
||||
let _ = self.app_controller.initialize()?;
|
||||
let _ = self.view_controller.initialize()?;
|
||||
self.app_controller.initialize()?;
|
||||
self.view_controller.initialize()?;
|
||||
write_guard.insert(user_id.to_owned(), true);
|
||||
Ok(())
|
||||
}
|
||||
@ -235,7 +235,7 @@ impl DefaultFolderBuilder {
|
||||
if index == 0 {
|
||||
let _ = view_controller.set_latest_view(&view.id);
|
||||
let layout_type = ViewLayoutTypePB::from(view.layout.clone());
|
||||
let _ = view_controller
|
||||
view_controller
|
||||
.create_view(&view.id, view_data_type, layout_type, view_data)
|
||||
.await?;
|
||||
}
|
||||
@ -243,7 +243,7 @@ impl DefaultFolderBuilder {
|
||||
}
|
||||
let folder = FolderPad::new(vec![workspace_rev.clone()], vec![])?;
|
||||
let folder_id = FolderId::new(user_id);
|
||||
let _ = persistence.save_folder(user_id, &folder_id, folder).await?;
|
||||
persistence.save_folder(user_id, &folder_id, folder).await?;
|
||||
let repeated_workspace = RepeatedWorkspacePB {
|
||||
items: vec![workspace_rev.into()],
|
||||
};
|
||||
|
@ -50,8 +50,7 @@ impl AppController {
|
||||
}
|
||||
|
||||
pub(crate) async fn create_app_on_local(&self, app: AppRevision) -> Result<AppPB, FlowyError> {
|
||||
let _ = self
|
||||
.persistence
|
||||
self.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let _ = transaction.create_app(app.clone())?;
|
||||
let _ = notify_apps_changed(&app.workspace_id, self.trash_controller.clone(), &transaction)?;
|
||||
@ -75,7 +74,7 @@ impl AppController {
|
||||
Ok(app)
|
||||
})
|
||||
.await?;
|
||||
let _ = self.read_app_on_server(params)?;
|
||||
self.read_app_on_server(params)?;
|
||||
Ok(app)
|
||||
}
|
||||
|
||||
@ -86,7 +85,7 @@ impl AppController {
|
||||
let app: AppPB = self
|
||||
.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let _ = transaction.update_app(changeset)?;
|
||||
transaction.update_app(changeset)?;
|
||||
let app = transaction.read_app(&app_id)?;
|
||||
Ok(app)
|
||||
})
|
||||
@ -95,13 +94,12 @@ impl AppController {
|
||||
send_dart_notification(&app_id, FolderNotification::AppUpdated)
|
||||
.payload(app)
|
||||
.send();
|
||||
let _ = self.update_app_on_server(params)?;
|
||||
self.update_app_on_server(params)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub(crate) async fn move_app(&self, app_id: &str, from: usize, to: usize) -> FlowyResult<()> {
|
||||
let _ = self
|
||||
.persistence
|
||||
self.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let _ = transaction.move_app(app_id, from, to)?;
|
||||
let app = transaction.read_app(app_id)?;
|
||||
@ -211,7 +209,7 @@ async fn handle_trash_event(
|
||||
.begin_transaction(|transaction| {
|
||||
for identifier in identifiers.items {
|
||||
let app = transaction.read_app(&identifier.id)?;
|
||||
let _ = notify_apps_changed(&app.workspace_id, trash_controller.clone(), &transaction)?;
|
||||
notify_apps_changed(&app.workspace_id, trash_controller.clone(), &transaction)?;
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
@ -229,7 +227,7 @@ async fn handle_trash_event(
|
||||
}
|
||||
|
||||
for notify_id in notify_ids {
|
||||
let _ = notify_apps_changed(¬ify_id, trash_controller.clone(), &transaction)?;
|
||||
notify_apps_changed(¬ify_id, trash_controller.clone(), &transaction)?;
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
|
@ -30,7 +30,7 @@ pub(crate) async fn delete_app_handler(
|
||||
.map(|app_rev| app_rev.into())
|
||||
.collect::<Vec<TrashRevision>>();
|
||||
|
||||
let _ = trash_controller.add(trash).await?;
|
||||
trash_controller.add(trash).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -40,7 +40,7 @@ pub(crate) async fn update_app_handler(
|
||||
controller: AFPluginState<Arc<AppController>>,
|
||||
) -> Result<(), FlowyError> {
|
||||
let params: UpdateAppParams = data.into_inner().try_into()?;
|
||||
let _ = controller.update_app(params).await?;
|
||||
controller.update_app(params).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -90,7 +90,7 @@ impl FolderMigration {
|
||||
if KV::get_bool(&key) {
|
||||
return Ok(());
|
||||
}
|
||||
let _ = self.migration_folder_rev_struct(folder_id).await?;
|
||||
self.migration_folder_rev_struct(folder_id).await?;
|
||||
KV::set_bool(&key, true);
|
||||
// tracing::info!("Run folder v2 migration");
|
||||
Ok(())
|
||||
@ -101,7 +101,7 @@ impl FolderMigration {
|
||||
if KV::get_bool(&key) {
|
||||
return Ok(());
|
||||
}
|
||||
let _ = self.migration_folder_rev_struct(folder_id).await?;
|
||||
self.migration_folder_rev_struct(folder_id).await?;
|
||||
KV::set_bool(&key, true);
|
||||
tracing::trace!("Run folder v3 migration");
|
||||
Ok(())
|
||||
|
@ -103,8 +103,8 @@ impl FolderPersistence {
|
||||
self.save_folder(user_id, folder_id, migrated_folder).await?;
|
||||
}
|
||||
|
||||
let _ = migrations.run_v2_migration(folder_id).await?;
|
||||
let _ = migrations.run_v3_migration(folder_id).await?;
|
||||
migrations.run_v2_migration(folder_id).await?;
|
||||
migrations.run_v3_migration(folder_id).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@ impl RevisionDiskCache<Arc<ConnectionPool>> for SQLiteFolderRevisionPersistence
|
||||
|
||||
fn create_revision_records(&self, revision_records: Vec<SyncRecord>) -> Result<(), Self::Error> {
|
||||
let conn = self.pool.get().map_err(internal_error)?;
|
||||
let _ = FolderRevisionSql::create(revision_records, &*conn)?;
|
||||
FolderRevisionSql::create(revision_records, &*conn)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ impl RevisionDiskCache<Arc<ConnectionPool>> for SQLiteFolderRevisionPersistence
|
||||
rev_ids: Option<Vec<i64>>,
|
||||
) -> Result<Vec<SyncRecord>, Self::Error> {
|
||||
let conn = self.pool.get().map_err(internal_error)?;
|
||||
let records = FolderRevisionSql::read(&self.user_id, object_id, rev_ids, &*conn)?;
|
||||
let records = FolderRevisionSql::read(&self.user_id, object_id, rev_ids, &conn)?;
|
||||
Ok(records)
|
||||
}
|
||||
|
||||
@ -52,7 +52,7 @@ impl RevisionDiskCache<Arc<ConnectionPool>> for SQLiteFolderRevisionPersistence
|
||||
|
||||
fn update_revision_record(&self, changesets: Vec<RevisionChangeset>) -> FlowyResult<()> {
|
||||
let conn = &*self.pool.get().map_err(internal_error)?;
|
||||
let _ = conn.immediate_transaction::<_, FlowyError, _>(|| {
|
||||
conn.immediate_transaction::<_, FlowyError, _>(|| {
|
||||
for changeset in changesets {
|
||||
let _ = FolderRevisionSql::update(changeset, conn)?;
|
||||
}
|
||||
@ -63,7 +63,7 @@ impl RevisionDiskCache<Arc<ConnectionPool>> for SQLiteFolderRevisionPersistence
|
||||
|
||||
fn delete_revision_records(&self, object_id: &str, rev_ids: Option<Vec<i64>>) -> Result<(), Self::Error> {
|
||||
let conn = &*self.pool.get().map_err(internal_error)?;
|
||||
let _ = FolderRevisionSql::delete(object_id, rev_ids, conn)?;
|
||||
FolderRevisionSql::delete(object_id, rev_ids, conn)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -75,8 +75,8 @@ impl RevisionDiskCache<Arc<ConnectionPool>> for SQLiteFolderRevisionPersistence
|
||||
) -> Result<(), Self::Error> {
|
||||
let conn = self.pool.get().map_err(internal_error)?;
|
||||
conn.immediate_transaction::<_, FlowyError, _>(|| {
|
||||
let _ = FolderRevisionSql::delete(object_id, deleted_rev_ids, &*conn)?;
|
||||
let _ = FolderRevisionSql::create(inserted_records, &*conn)?;
|
||||
FolderRevisionSql::delete(object_id, deleted_rev_ids, &*conn)?;
|
||||
FolderRevisionSql::create(inserted_records, &*conn)?;
|
||||
Ok(())
|
||||
})
|
||||
}
|
||||
|
@ -15,47 +15,47 @@ pub struct V1Transaction<'a>(pub &'a DBConnection);
|
||||
|
||||
impl<'a> FolderPersistenceTransaction for V1Transaction<'a> {
|
||||
fn create_workspace(&self, user_id: &str, workspace_rev: WorkspaceRevision) -> FlowyResult<()> {
|
||||
let _ = WorkspaceTableSql::create_workspace(user_id, workspace_rev, &*self.0)?;
|
||||
WorkspaceTableSql::create_workspace(user_id, workspace_rev, &*self.0)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn read_workspaces(&self, user_id: &str, workspace_id: Option<String>) -> FlowyResult<Vec<WorkspaceRevision>> {
|
||||
let tables = WorkspaceTableSql::read_workspaces(user_id, workspace_id, &*self.0)?;
|
||||
let tables = WorkspaceTableSql::read_workspaces(user_id, workspace_id, self.0)?;
|
||||
let workspaces = tables.into_iter().map(WorkspaceRevision::from).collect::<Vec<_>>();
|
||||
Ok(workspaces)
|
||||
}
|
||||
|
||||
fn update_workspace(&self, changeset: WorkspaceChangeset) -> FlowyResult<()> {
|
||||
WorkspaceTableSql::update_workspace(changeset, &*self.0)
|
||||
WorkspaceTableSql::update_workspace(changeset, self.0)
|
||||
}
|
||||
|
||||
fn delete_workspace(&self, workspace_id: &str) -> FlowyResult<()> {
|
||||
WorkspaceTableSql::delete_workspace(workspace_id, &*self.0)
|
||||
WorkspaceTableSql::delete_workspace(workspace_id, self.0)
|
||||
}
|
||||
|
||||
fn create_app(&self, app_rev: AppRevision) -> FlowyResult<()> {
|
||||
let _ = AppTableSql::create_app(app_rev, &*self.0)?;
|
||||
AppTableSql::create_app(app_rev, &*self.0)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn update_app(&self, changeset: AppChangeset) -> FlowyResult<()> {
|
||||
let _ = AppTableSql::update_app(changeset, &*self.0)?;
|
||||
AppTableSql::update_app(changeset, &*self.0)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn read_app(&self, app_id: &str) -> FlowyResult<AppRevision> {
|
||||
let app_revision: AppRevision = AppTableSql::read_app(app_id, &*self.0)?.into();
|
||||
let app_revision: AppRevision = AppTableSql::read_app(app_id, self.0)?.into();
|
||||
Ok(app_revision)
|
||||
}
|
||||
|
||||
fn read_workspace_apps(&self, workspace_id: &str) -> FlowyResult<Vec<AppRevision>> {
|
||||
let tables = AppTableSql::read_workspace_apps(workspace_id, &*self.0)?;
|
||||
let tables = AppTableSql::read_workspace_apps(workspace_id, self.0)?;
|
||||
let apps = tables.into_iter().map(AppRevision::from).collect::<Vec<_>>();
|
||||
Ok(apps)
|
||||
}
|
||||
|
||||
fn delete_app(&self, app_id: &str) -> FlowyResult<AppRevision> {
|
||||
let app_revision: AppRevision = AppTableSql::delete_app(app_id, &*self.0)?.into();
|
||||
let app_revision: AppRevision = AppTableSql::delete_app(app_id, self.0)?.into();
|
||||
Ok(app_revision)
|
||||
}
|
||||
|
||||
@ -64,29 +64,29 @@ impl<'a> FolderPersistenceTransaction for V1Transaction<'a> {
|
||||
}
|
||||
|
||||
fn create_view(&self, view_rev: ViewRevision) -> FlowyResult<()> {
|
||||
let _ = ViewTableSql::create_view(view_rev, &*self.0)?;
|
||||
ViewTableSql::create_view(view_rev, &*self.0)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn read_view(&self, view_id: &str) -> FlowyResult<ViewRevision> {
|
||||
let view_revision: ViewRevision = ViewTableSql::read_view(view_id, &*self.0)?.into();
|
||||
let view_revision: ViewRevision = ViewTableSql::read_view(view_id, self.0)?.into();
|
||||
Ok(view_revision)
|
||||
}
|
||||
|
||||
fn read_views(&self, belong_to_id: &str) -> FlowyResult<Vec<ViewRevision>> {
|
||||
let tables = ViewTableSql::read_views(belong_to_id, &*self.0)?;
|
||||
let tables = ViewTableSql::read_views(belong_to_id, self.0)?;
|
||||
let views = tables.into_iter().map(ViewRevision::from).collect::<Vec<_>>();
|
||||
Ok(views)
|
||||
}
|
||||
|
||||
fn update_view(&self, changeset: ViewChangeset) -> FlowyResult<()> {
|
||||
let _ = ViewTableSql::update_view(changeset, &*self.0)?;
|
||||
ViewTableSql::update_view(changeset, &*self.0)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn delete_view(&self, view_id: &str) -> FlowyResult<ViewRevision> {
|
||||
let view_revision: ViewRevision = ViewTableSql::read_view(view_id, &*self.0)?.into();
|
||||
let _ = ViewTableSql::delete_view(view_id, &*self.0)?;
|
||||
let view_revision: ViewRevision = ViewTableSql::read_view(view_id, self.0)?.into();
|
||||
ViewTableSql::delete_view(view_id, &*self.0)?;
|
||||
Ok(view_revision)
|
||||
}
|
||||
|
||||
@ -95,15 +95,15 @@ impl<'a> FolderPersistenceTransaction for V1Transaction<'a> {
|
||||
}
|
||||
|
||||
fn create_trash(&self, trashes: Vec<TrashRevision>) -> FlowyResult<()> {
|
||||
let _ = TrashTableSql::create_trash(trashes, &*self.0)?;
|
||||
TrashTableSql::create_trash(trashes, &*self.0)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn read_trash(&self, trash_id: Option<String>) -> FlowyResult<Vec<TrashRevision>> {
|
||||
match trash_id {
|
||||
None => TrashTableSql::read_all(&*self.0),
|
||||
None => TrashTableSql::read_all(self.0),
|
||||
Some(trash_id) => {
|
||||
let trash_revision: TrashRevision = TrashTableSql::read(&trash_id, &*self.0)?.into();
|
||||
let trash_revision: TrashRevision = TrashTableSql::read(&trash_id, self.0)?.into();
|
||||
Ok(vec![trash_revision])
|
||||
}
|
||||
}
|
||||
@ -111,10 +111,10 @@ impl<'a> FolderPersistenceTransaction for V1Transaction<'a> {
|
||||
|
||||
fn delete_trash(&self, trash_ids: Option<Vec<String>>) -> FlowyResult<()> {
|
||||
match trash_ids {
|
||||
None => TrashTableSql::delete_all(&*self.0),
|
||||
None => TrashTableSql::delete_all(self.0),
|
||||
Some(trash_ids) => {
|
||||
for trash_id in &trash_ids {
|
||||
let _ = TrashTableSql::delete_trash(trash_id, &*self.0)?;
|
||||
TrashTableSql::delete_trash(trash_id, &*self.0)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ impl WorkspaceTableSql {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Clone, Debug, Queryable, Identifiable, Insertable)]
|
||||
#[derive(PartialEq, Eq, Clone, Debug, Queryable, Identifiable, Insertable)]
|
||||
#[table_name = "workspace_table"]
|
||||
pub struct WorkspaceTable {
|
||||
pub id: String,
|
||||
|
@ -9,7 +9,7 @@ use std::sync::Arc;
|
||||
impl FolderPersistenceTransaction for FolderEditor {
|
||||
fn create_workspace(&self, _user_id: &str, workspace_rev: WorkspaceRevision) -> FlowyResult<()> {
|
||||
if let Some(change) = self.folder.write().create_workspace(workspace_rev)? {
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
@ -25,21 +25,21 @@ impl FolderPersistenceTransaction for FolderEditor {
|
||||
.write()
|
||||
.update_workspace(&changeset.id, changeset.name, changeset.desc)?
|
||||
{
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn delete_workspace(&self, workspace_id: &str) -> FlowyResult<()> {
|
||||
if let Some(change) = self.folder.write().delete_workspace(workspace_id)? {
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn create_app(&self, app_rev: AppRevision) -> FlowyResult<()> {
|
||||
if let Some(change) = self.folder.write().create_app(app_rev)? {
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
@ -50,7 +50,7 @@ impl FolderPersistenceTransaction for FolderEditor {
|
||||
.write()
|
||||
.update_app(&changeset.id, changeset.name, changeset.desc)?
|
||||
{
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
@ -73,21 +73,21 @@ impl FolderPersistenceTransaction for FolderEditor {
|
||||
fn delete_app(&self, app_id: &str) -> FlowyResult<AppRevision> {
|
||||
let app = self.folder.read().read_app(app_id)?;
|
||||
if let Some(change) = self.folder.write().delete_app(app_id)? {
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(app)
|
||||
}
|
||||
|
||||
fn move_app(&self, app_id: &str, from: usize, to: usize) -> FlowyResult<()> {
|
||||
if let Some(change) = self.folder.write().move_app(app_id, from, to)? {
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn create_view(&self, view_rev: ViewRevision) -> FlowyResult<()> {
|
||||
if let Some(change) = self.folder.write().create_view(view_rev)? {
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
@ -108,7 +108,7 @@ impl FolderPersistenceTransaction for FolderEditor {
|
||||
.write()
|
||||
.update_view(&changeset.id, changeset.name, changeset.desc, changeset.modified_time)?
|
||||
{
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
@ -116,21 +116,21 @@ impl FolderPersistenceTransaction for FolderEditor {
|
||||
fn delete_view(&self, view_id: &str) -> FlowyResult<ViewRevision> {
|
||||
let view = self.folder.read().read_view(view_id)?;
|
||||
if let Some(change) = self.folder.write().delete_view(&view.app_id, view_id)? {
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(view)
|
||||
}
|
||||
|
||||
fn move_view(&self, view_id: &str, from: usize, to: usize) -> FlowyResult<()> {
|
||||
if let Some(change) = self.folder.write().move_view(view_id, from, to)? {
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn create_trash(&self, trashes: Vec<TrashRevision>) -> FlowyResult<()> {
|
||||
if let Some(change) = self.folder.write().create_trash(trashes)? {
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
@ -142,7 +142,7 @@ impl FolderPersistenceTransaction for FolderEditor {
|
||||
|
||||
fn delete_trash(&self, trash_ids: Option<Vec<String>>) -> FlowyResult<()> {
|
||||
if let Some(change) = self.folder.write().delete_trash(trash_ids)? {
|
||||
let _ = self.apply_change(change)?;
|
||||
self.apply_change(change)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ impl TrashController {
|
||||
.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let mut repeated_trash = transaction.read_trash(Some(trash_id.to_owned()))?;
|
||||
let _ = transaction.delete_trash(Some(vec![trash_id.to_owned()]))?;
|
||||
transaction.delete_trash(Some(vec![trash_id.to_owned()]))?;
|
||||
notify_trash_changed(transaction.read_trash(None)?);
|
||||
|
||||
if repeated_trash.is_empty() {
|
||||
@ -54,14 +54,14 @@ impl TrashController {
|
||||
ty: trash.ty.into(),
|
||||
};
|
||||
|
||||
let _ = self.delete_trash_on_server(RepeatedTrashIdPB {
|
||||
self.delete_trash_on_server(RepeatedTrashIdPB {
|
||||
items: vec![identifier.clone()],
|
||||
delete_all: false,
|
||||
})?;
|
||||
|
||||
tracing::Span::current().record("putback", &format!("{:?}", &identifier).as_str());
|
||||
let _ = self.notify.send(TrashEvent::Putback(vec![identifier].into(), tx));
|
||||
let _ = rx.recv().await.unwrap()?;
|
||||
rx.recv().await.unwrap()?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -82,7 +82,7 @@ impl TrashController {
|
||||
let _ = rx.recv().await;
|
||||
|
||||
notify_trash_changed(RepeatedTrashPB { items: vec![] });
|
||||
let _ = self.delete_all_trash_on_server().await?;
|
||||
self.delete_all_trash_on_server().await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -94,23 +94,23 @@ impl TrashController {
|
||||
.await?
|
||||
.into();
|
||||
|
||||
let _ = self.delete_with_identifiers(all_trash_identifiers).await?;
|
||||
self.delete_with_identifiers(all_trash_identifiers).await?;
|
||||
|
||||
notify_trash_changed(RepeatedTrashPB { items: vec![] });
|
||||
let _ = self.delete_all_trash_on_server().await?;
|
||||
self.delete_all_trash_on_server().await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tracing::instrument(level = "debug", skip(self), err)]
|
||||
pub async fn delete(&self, trash_identifiers: RepeatedTrashIdPB) -> FlowyResult<()> {
|
||||
let _ = self.delete_with_identifiers(trash_identifiers.clone()).await?;
|
||||
self.delete_with_identifiers(trash_identifiers.clone()).await?;
|
||||
let trash_revs = self
|
||||
.persistence
|
||||
.begin_transaction(|transaction| transaction.read_trash(None))
|
||||
.await?;
|
||||
|
||||
notify_trash_changed(trash_revs);
|
||||
let _ = self.delete_trash_on_server(trash_identifiers)?;
|
||||
self.delete_trash_on_server(trash_identifiers)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -128,8 +128,7 @@ impl TrashController {
|
||||
Err(e) => log::error!("{}", e),
|
||||
},
|
||||
}
|
||||
let _ = self
|
||||
.persistence
|
||||
self.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let ids = trash_identifiers
|
||||
.items
|
||||
@ -167,8 +166,7 @@ impl TrashController {
|
||||
.as_str(),
|
||||
);
|
||||
|
||||
let _ = self
|
||||
.persistence
|
||||
self.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let _ = transaction.create_trash(trash_revs.clone())?;
|
||||
let _ = self.create_trash_on_server(trash_revs);
|
||||
@ -178,7 +176,7 @@ impl TrashController {
|
||||
})
|
||||
.await?;
|
||||
let _ = self.notify.send(TrashEvent::NewTrash(identifiers.into(), tx));
|
||||
let _ = rx.recv().await.unwrap()?;
|
||||
rx.recv().await.unwrap()?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -196,7 +194,7 @@ impl TrashController {
|
||||
.map(|trash_rev| trash_rev.into())
|
||||
.collect();
|
||||
|
||||
let _ = self.read_trash_on_server()?;
|
||||
self.read_trash_on_server()?;
|
||||
Ok(RepeatedTrashPB { items })
|
||||
}
|
||||
|
||||
@ -255,7 +253,7 @@ impl TrashController {
|
||||
tracing::debug!("Remote trash count: {}", trash_rev.len());
|
||||
let result = persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let _ = transaction.create_trash(trash_rev.clone())?;
|
||||
transaction.create_trash(trash_rev.clone())?;
|
||||
transaction.read_trash(None)
|
||||
})
|
||||
.await;
|
||||
|
@ -19,7 +19,7 @@ pub(crate) async fn putback_trash_handler(
|
||||
identifier: AFPluginData<TrashIdPB>,
|
||||
controller: AFPluginState<Arc<TrashController>>,
|
||||
) -> Result<(), FlowyError> {
|
||||
let _ = controller.putback(&identifier.id).await?;
|
||||
controller.putback(&identifier.id).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ pub(crate) async fn delete_trash_handler(
|
||||
identifiers: AFPluginData<RepeatedTrashIdPB>,
|
||||
controller: AFPluginState<Arc<TrashController>>,
|
||||
) -> Result<(), FlowyError> {
|
||||
let _ = controller.delete(identifiers.into_inner()).await?;
|
||||
controller.delete(identifiers.into_inner()).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ pub(crate) async fn delete_trash_handler(
|
||||
pub(crate) async fn restore_all_trash_handler(
|
||||
controller: AFPluginState<Arc<TrashController>>,
|
||||
) -> Result<(), FlowyError> {
|
||||
let _ = controller.restore_all_trash().await?;
|
||||
controller.restore_all_trash().await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -44,6 +44,6 @@ pub(crate) async fn restore_all_trash_handler(
|
||||
pub(crate) async fn delete_all_trash_handler(
|
||||
controller: AFPluginState<Arc<TrashController>>,
|
||||
) -> Result<(), FlowyError> {
|
||||
let _ = controller.delete_all_trash().await?;
|
||||
controller.delete_all_trash().await?;
|
||||
Ok(())
|
||||
}
|
||||
|
@ -81,18 +81,17 @@ impl ViewController {
|
||||
params.layout.clone(),
|
||||
)
|
||||
.await?;
|
||||
let _ = self
|
||||
.create_view(
|
||||
¶ms.view_id,
|
||||
params.data_format.clone(),
|
||||
params.layout.clone(),
|
||||
delta_data,
|
||||
)
|
||||
.await?;
|
||||
self.create_view(
|
||||
¶ms.view_id,
|
||||
params.data_format.clone(),
|
||||
params.layout.clone(),
|
||||
delta_data,
|
||||
)
|
||||
.await?;
|
||||
};
|
||||
|
||||
let view_rev = self.create_view_on_server(params).await?;
|
||||
let _ = self.create_view_on_local(view_rev.clone()).await?;
|
||||
self.create_view_on_local(view_rev.clone()).await?;
|
||||
Ok(view_rev)
|
||||
}
|
||||
|
||||
@ -109,7 +108,7 @@ impl ViewController {
|
||||
}
|
||||
let user_id = self.user.user_id()?;
|
||||
let processor = self.get_data_processor(data_type)?;
|
||||
let _ = processor.create_view(&user_id, view_id, layout_type, view_data).await?;
|
||||
processor.create_view(&user_id, view_id, layout_type, view_data).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -118,8 +117,8 @@ impl ViewController {
|
||||
self.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let belong_to_id = view_rev.app_id.clone();
|
||||
let _ = transaction.create_view(view_rev)?;
|
||||
let _ = notify_views_changed(&belong_to_id, trash_controller, &transaction)?;
|
||||
transaction.create_view(view_rev)?;
|
||||
notify_views_changed(&belong_to_id, trash_controller, &transaction)?;
|
||||
Ok(())
|
||||
})
|
||||
.await
|
||||
@ -196,7 +195,7 @@ impl ViewController {
|
||||
#[tracing::instrument(level = "debug", skip(self), err)]
|
||||
pub(crate) async fn close_view(&self, view_id: &str) -> Result<(), FlowyError> {
|
||||
let processor = self.get_data_processor_from_view_id(view_id).await?;
|
||||
let _ = processor.close_view(view_id).await?;
|
||||
processor.close_view(view_id).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -231,14 +230,13 @@ impl ViewController {
|
||||
.send();
|
||||
|
||||
let processor = self.get_data_processor_from_view_id(&view_id).await?;
|
||||
let _ = processor.close_view(&view_id).await?;
|
||||
processor.close_view(&view_id).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tracing::instrument(level = "debug", skip(self), err)]
|
||||
pub(crate) async fn move_view(&self, view_id: &str, from: usize, to: usize) -> Result<(), FlowyError> {
|
||||
let _ = self
|
||||
.persistence
|
||||
self.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let _ = transaction.move_view(view_id, from, to)?;
|
||||
let view = transaction.read_view(view_id)?;
|
||||
@ -290,13 +288,13 @@ impl ViewController {
|
||||
let view_rev = self
|
||||
.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let _ = transaction.update_view(changeset)?;
|
||||
transaction.update_view(changeset)?;
|
||||
let view_rev = transaction.read_view(&view_id)?;
|
||||
let view: ViewPB = view_rev.clone().into();
|
||||
send_dart_notification(&view_id, FolderNotification::ViewUpdated)
|
||||
.payload(view)
|
||||
.send();
|
||||
let _ = notify_views_changed(&view_rev.app_id, self.trash_controller.clone(), &transaction)?;
|
||||
notify_views_changed(&view_rev.app_id, self.trash_controller.clone(), &transaction)?;
|
||||
Ok(view_rev)
|
||||
})
|
||||
.await?;
|
||||
@ -439,7 +437,7 @@ async fn handle_trash_event(
|
||||
.begin_transaction(|transaction| {
|
||||
let view_revs = read_local_views_with_transaction(identifiers, &transaction)?;
|
||||
for view_rev in view_revs {
|
||||
let _ = notify_views_changed(&view_rev.app_id, trash_can.clone(), &transaction)?;
|
||||
notify_views_changed(&view_rev.app_id, trash_can.clone(), &transaction)?;
|
||||
notify_dart(view_rev.into(), FolderNotification::ViewDeleted);
|
||||
}
|
||||
Ok(())
|
||||
@ -452,7 +450,7 @@ async fn handle_trash_event(
|
||||
.begin_transaction(|transaction| {
|
||||
let view_revs = read_local_views_with_transaction(identifiers, &transaction)?;
|
||||
for view_rev in view_revs {
|
||||
let _ = notify_views_changed(&view_rev.app_id, trash_can.clone(), &transaction)?;
|
||||
notify_views_changed(&view_rev.app_id, trash_can.clone(), &transaction)?;
|
||||
notify_dart(view_rev.into(), FolderNotification::ViewRestored);
|
||||
}
|
||||
Ok(())
|
||||
@ -473,7 +471,7 @@ async fn handle_trash_event(
|
||||
}
|
||||
}
|
||||
for notify_id in notify_ids {
|
||||
let _ = notify_views_changed(¬ify_id, trash_can.clone(), &transaction)?;
|
||||
notify_views_changed(¬ify_id, trash_can.clone(), &transaction)?;
|
||||
}
|
||||
Ok(views)
|
||||
})
|
||||
@ -483,7 +481,7 @@ async fn handle_trash_event(
|
||||
let data_type = view.data_format.clone().into();
|
||||
match get_data_processor(data_processors.clone(), &data_type) {
|
||||
Ok(processor) => {
|
||||
let _ = processor.close_view(&view.id).await?;
|
||||
processor.close_view(&view.id).await?;
|
||||
}
|
||||
Err(e) => tracing::error!("{}", e),
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ pub(crate) async fn delete_view_handler(
|
||||
})
|
||||
.collect::<Vec<TrashPB>>();
|
||||
|
||||
let _ = trash_controller.add(trash).await?;
|
||||
trash_controller.add(trash).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -85,8 +85,8 @@ pub(crate) async fn set_latest_view_handler(
|
||||
controller: AFPluginState<Arc<ViewController>>,
|
||||
) -> Result<(), FlowyError> {
|
||||
let view_id: ViewIdPB = data.into_inner();
|
||||
let _ = controller.set_latest_view(&view_id.value)?;
|
||||
let _ = notify_workspace_setting_did_change(&folder, &view_id).await?;
|
||||
controller.set_latest_view(&view_id.value)?;
|
||||
notify_workspace_setting_did_change(&folder, &view_id).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -95,7 +95,7 @@ pub(crate) async fn close_view_handler(
|
||||
controller: AFPluginState<Arc<ViewController>>,
|
||||
) -> Result<(), FlowyError> {
|
||||
let view_id: ViewIdPB = data.into_inner();
|
||||
let _ = controller.close_view(&view_id.value).await?;
|
||||
controller.close_view(&view_id.value).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -108,10 +108,10 @@ pub(crate) async fn move_item_handler(
|
||||
let params: MoveFolderItemParams = data.into_inner().try_into()?;
|
||||
match params.ty {
|
||||
MoveFolderItemType::MoveApp => {
|
||||
let _ = app_controller.move_app(¶ms.item_id, params.from, params.to).await?;
|
||||
app_controller.move_app(¶ms.item_id, params.from, params.to).await?;
|
||||
}
|
||||
MoveFolderItemType::MoveView => {
|
||||
let _ = view_controller
|
||||
view_controller
|
||||
.move_view(¶ms.item_id, params.from, params.to)
|
||||
.await?;
|
||||
}
|
||||
@ -125,6 +125,6 @@ pub(crate) async fn duplicate_view_handler(
|
||||
controller: AFPluginState<Arc<ViewController>>,
|
||||
) -> Result<(), FlowyError> {
|
||||
let view: ViewPB = data.into_inner();
|
||||
let _ = controller.duplicate_view(view).await?;
|
||||
controller.duplicate_view(view).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ impl WorkspaceController {
|
||||
let workspaces = self
|
||||
.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let _ = transaction.create_workspace(&user_id, workspace.clone())?;
|
||||
transaction.create_workspace(&user_id, workspace.clone())?;
|
||||
transaction.read_workspaces(&user_id, None)
|
||||
})
|
||||
.await?
|
||||
@ -67,7 +67,7 @@ impl WorkspaceController {
|
||||
let workspace = self
|
||||
.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let _ = transaction.update_workspace(changeset)?;
|
||||
transaction.update_workspace(changeset)?;
|
||||
let user_id = self.user.user_id()?;
|
||||
self.read_local_workspace(workspace_id.clone(), &user_id, &transaction)
|
||||
})
|
||||
@ -76,7 +76,7 @@ impl WorkspaceController {
|
||||
send_dart_notification(&workspace_id, FolderNotification::WorkspaceUpdated)
|
||||
.payload(workspace)
|
||||
.send();
|
||||
let _ = self.update_workspace_on_server(params)?;
|
||||
self.update_workspace_on_server(params)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -88,14 +88,14 @@ impl WorkspaceController {
|
||||
let repeated_workspace = self
|
||||
.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let _ = transaction.delete_workspace(workspace_id)?;
|
||||
transaction.delete_workspace(workspace_id)?;
|
||||
self.read_local_workspaces(None, &user_id, &transaction)
|
||||
})
|
||||
.await?;
|
||||
send_dart_notification(&token, FolderNotification::UserDeleteWorkspace)
|
||||
.payload(repeated_workspace)
|
||||
.send();
|
||||
let _ = self.delete_workspace_on_server(workspace_id)?;
|
||||
self.delete_workspace_on_server(workspace_id)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -117,7 +117,7 @@ fn read_workspaces_on_server(
|
||||
|
||||
tokio::spawn(async move {
|
||||
let workspace_revs = server.read_workspace(&token, params).await?;
|
||||
let _ = persistence
|
||||
persistence
|
||||
.begin_transaction(|transaction| {
|
||||
for workspace_rev in &workspace_revs {
|
||||
let m_workspace = workspace_rev.clone();
|
||||
|
Reference in New Issue
Block a user