nblm_core/client/api/
audio.rs

1use reqwest::Method;
2
3use crate::error::Result;
4use crate::models::{AudioOverviewRequest, AudioOverviewResponse};
5
6use crate::client::NblmClient;
7
8/// Audio-related API implementations
9impl NblmClient {
10    pub async fn create_audio_overview(
11        &self,
12        notebook_id: &str,
13        request: AudioOverviewRequest,
14    ) -> Result<AudioOverviewResponse> {
15        let path = format!(
16            "{}/audioOverviews",
17            self.url_builder.notebook_path(notebook_id)
18        );
19        let url = self.url_builder.build_url(&path)?;
20
21        // API response is wrapped in audioOverview field
22        let api_response: crate::models::responses::audio::AudioOverviewApiResponse = self
23            .http
24            .request_json(Method::POST, url, Some(&request))
25            .await?;
26
27        Ok(api_response.audio_overview)
28    }
29
30    pub async fn delete_audio_overview(&self, notebook_id: &str) -> Result<()> {
31        let path = format!(
32            "{}/audioOverviews/default",
33            self.url_builder.notebook_path(notebook_id)
34        );
35        let url = self.url_builder.build_url(&path)?;
36        let _response: serde_json::Value = self
37            .http
38            .request_json(Method::DELETE, url, None::<&()>)
39            .await?;
40        Ok(())
41    }
42}