docbox-core 0.13.2

Docbox core business logic and functionality
Documentation
use docbox_database::models::{document_box::DocumentBoxScopeRaw, link::Link};
use docbox_search::{
    TenantSearchIndex,
    models::{SearchIndexData, SearchIndexType},
};

use super::create_link::CreateLinkError;

pub async fn store_link_index(
    search: &TenantSearchIndex,
    link: &Link,
    scope: &DocumentBoxScopeRaw,
) -> Result<(), CreateLinkError> {
    let index = SearchIndexData {
        ty: SearchIndexType::Link,
        item_id: link.id,
        folder_id: link.folder_id,
        name: link.name.to_string(),
        mime: None,
        content: Some(link.value.clone()),
        pages: None,
        created_at: link.created_at,
        created_by: link.created_by.clone(),
        document_box: scope.clone(),
    };

    search
        .add_data(vec![index])
        .await
        .map_err(CreateLinkError::CreateIndex)?;

    Ok(())
}