bitwarden_vault/
folder_client.rs

1use bitwarden_core::Client;
2
3use crate::{
4    error::{DecryptError, EncryptError},
5    Folder, FolderView, VaultClient,
6};
7
8pub struct FoldersClient {
9    pub(crate) client: Client,
10}
11
12impl FoldersClient {
13    pub fn encrypt(&self, folder_view: FolderView) -> Result<Folder, EncryptError> {
14        let key_store = self.client.internal.get_key_store();
15        let folder = key_store.encrypt(folder_view)?;
16        Ok(folder)
17    }
18
19    pub fn decrypt(&self, folder: Folder) -> Result<FolderView, DecryptError> {
20        let key_store = self.client.internal.get_key_store();
21        let folder_view = key_store.decrypt(&folder)?;
22        Ok(folder_view)
23    }
24
25    pub fn decrypt_list(&self, folders: Vec<Folder>) -> Result<Vec<FolderView>, DecryptError> {
26        let key_store = self.client.internal.get_key_store();
27        let views = key_store.decrypt_list(&folders)?;
28        Ok(views)
29    }
30}
31
32impl VaultClient {
33    pub fn folders(&self) -> FoldersClient {
34        FoldersClient {
35            client: self.client.clone(),
36        }
37    }
38}