First Version

This commit is contained in:
2026-07-10 15:02:09 +01:00
commit 38494a85a9
562 changed files with 196313 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
use crate::{
client::HonchoClient,
error::Result,
models::*,
workspaces::page_query,
};
impl HonchoClient {
/// Add one or more messages to a session in a single request.
pub async fn add_messages(
&self,
workspace_id: &str,
session_id: &str,
batch: &MessageBatchCreate,
) -> Result<Vec<Message>> {
self.post(
&format!("/v3/workspaces/{workspace_id}/sessions/{session_id}/messages"),
batch,
)
.await
}
/// Convenience: add a single message.
pub async fn add_message(
&self,
workspace_id: &str,
session_id: &str,
msg: MessageCreate,
) -> Result<Vec<Message>> {
self.add_messages(
workspace_id,
session_id,
&MessageBatchCreate { messages: vec![msg] },
)
.await
}
pub async fn list_messages(
&self,
workspace_id: &str,
session_id: &str,
params: &PageParams,
filter: &MessageGet,
) -> Result<Page<Message>> {
self.post_with_query(
&format!("/v3/workspaces/{workspace_id}/sessions/{session_id}/messages/list"),
&page_query(params),
filter,
)
.await
}
pub async fn get_message(
&self,
workspace_id: &str,
session_id: &str,
message_id: &str,
) -> Result<Message> {
self.get(&format!(
"/v3/workspaces/{workspace_id}/sessions/{session_id}/messages/{message_id}"
))
.await
}
pub async fn update_message(
&self,
workspace_id: &str,
session_id: &str,
message_id: &str,
body: &MessageUpdate,
) -> Result<Message> {
self.put(
&format!(
"/v3/workspaces/{workspace_id}/sessions/{session_id}/messages/{message_id}"
),
body,
)
.await
}
}