docbox_core/folders/
index_folder.rs

1use super::create_folder::CreateFolderError;
2use docbox_database::models::folder::{Folder, FolderId};
3use docbox_search::{
4    TenantSearchIndex,
5    models::{SearchIndexData, SearchIndexType},
6};
7
8pub async fn store_folder_index(
9    search: &TenantSearchIndex,
10    folder: &Folder,
11    folder_id: FolderId,
12) -> Result<(), CreateFolderError> {
13    let index = SearchIndexData {
14        ty: SearchIndexType::Folder,
15        item_id: folder.id,
16        folder_id,
17        name: folder.name.to_string(),
18        mime: None,
19        content: None,
20        pages: None,
21        created_at: folder.created_at,
22        created_by: folder.created_by.clone(),
23        document_box: folder.document_box.clone(),
24    };
25
26    // Add folder to search index
27    search
28        .add_data(vec![index])
29        .await
30        .map_err(CreateFolderError::CreateIndex)?;
31
32    Ok(())
33}