| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- use crate::util::make_operations_from_revisions;
- use crate::{
- client_folder::{default_folder_operations, FolderPad},
- entities::revision::Revision,
- errors::CollaborateResult,
- };
- use crate::server_folder::FolderOperations;
- use flowy_folder_data_model::revision::{TrashRevision, WorkspaceRevision};
- use serde::{Deserialize, Serialize};
- #[derive(Serialize, Deserialize)]
- pub(crate) struct FolderPadBuilder {
- workspaces: Vec<WorkspaceRevision>,
- trash: Vec<TrashRevision>,
- }
- impl FolderPadBuilder {
- pub(crate) fn new() -> Self {
- Self {
- workspaces: vec![],
- trash: vec![],
- }
- }
- #[allow(dead_code)]
- pub(crate) fn with_workspace(mut self, workspaces: Vec<WorkspaceRevision>) -> Self {
- self.workspaces = workspaces;
- self
- }
- #[allow(dead_code)]
- pub(crate) fn with_trash(mut self, trash: Vec<TrashRevision>) -> Self {
- self.trash = trash;
- self
- }
- pub(crate) fn build_with_revisions(self, revisions: Vec<Revision>) -> CollaborateResult<FolderPad> {
- let mut operations: FolderOperations = make_operations_from_revisions(revisions)?;
- if operations.is_empty() {
- operations = default_folder_operations();
- }
- FolderPad::from_operations(operations)
- }
- #[allow(dead_code)]
- pub(crate) fn build(self) -> CollaborateResult<FolderPad> {
- FolderPad::new(self.workspaces, self.trash)
- }
- }
|