bitwarden_vault/
folder_client.rs1use 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}