Skip to main content

bitwarden_uniffi/vault/
folders.rs

1use bitwarden_vault::{Folder, FolderAddEditRequest, FolderId, FolderView};
2
3use crate::Result;
4
5#[allow(missing_docs)]
6#[derive(uniffi::Object)]
7pub struct FoldersClient(pub(crate) bitwarden_vault::FoldersClient);
8
9#[uniffi::export(async_runtime = "tokio")]
10impl FoldersClient {
11    /// Encrypt folder
12    pub fn encrypt(&self, folder: FolderView) -> Result<Folder> {
13        #[allow(deprecated)]
14        Ok(self.0.encrypt(folder)?)
15    }
16
17    /// Decrypt folder
18    pub fn decrypt(&self, folder: Folder) -> Result<FolderView> {
19        #[allow(deprecated)]
20        Ok(self.0.decrypt(folder)?)
21    }
22
23    /// Decrypt folder list
24    pub fn decrypt_list(&self, folders: Vec<Folder>) -> Result<Vec<FolderView>> {
25        #[allow(deprecated)]
26        Ok(self.0.decrypt_list(folders)?)
27    }
28
29    /// Create a new folder and save it to the server and local state
30    pub async fn create(&self, request: FolderAddEditRequest) -> Result<FolderView> {
31        Ok(self.0.create(request).await?)
32    }
33
34    /// Edit an existing folder and save it to the server and local state
35    pub async fn edit(
36        &self,
37        folder_id: FolderId,
38        request: FolderAddEditRequest,
39    ) -> Result<FolderView> {
40        Ok(self.0.edit(folder_id, request).await?)
41    }
42
43    /// Get a folder from local state and decrypt it
44    pub async fn get(&self, folder_id: FolderId) -> Result<FolderView> {
45        Ok(self.0.get(folder_id).await?)
46    }
47
48    /// Get all folders from local state and decrypt them
49    pub async fn list(&self) -> Result<Vec<FolderView>> {
50        Ok(self.0.list().await?)
51    }
52}