openai_interface/conversations/
delete.rs1use url::Url;
9
10use crate::{
11 errors::OapiError,
12 rest::delete::{Delete, DeleteNoStream},
13};
14
15#[derive(Debug, Clone)]
17pub struct DeleteConversationRequest<'a> {
18 pub conversation_id: &'a str,
20}
21
22impl Delete for DeleteConversationRequest<'_> {
23 fn build_url(&self, base_url: &str) -> Result<String, OapiError> {
27 let mut url = Url::parse(base_url.trim_end_matches('/')).map_err(OapiError::UrlError)?;
28 url.path_segments_mut()
29 .map_err(|_| OapiError::UrlCannotBeBase(base_url.to_string()))?
30 .push("conversations")
31 .push(self.conversation_id);
32 Ok(url.to_string())
33 }
34}
35
36impl DeleteNoStream for DeleteConversationRequest<'_> {
37 type Response = DeleteConversationResponse;
38}
39
40#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
42pub struct DeleteConversationResponse {
43 pub id: String,
45 pub deleted: bool,
47 #[serde(default)]
50 pub object: Option<String>,
51}
52
53crate::impl_from_str!(DeleteConversationResponse);