use crate::{Client, Error, execute_wrapper, models};
use typesense_codegen::apis::conversations_api;
pub struct Model<'a> {
pub(super) client: &'a Client,
pub(super) model_id: &'a str,
}
impl<'a> Model<'a> {
#[inline]
pub(super) fn new(client: &'a Client, model_id: &'a str) -> Self {
Self { client, model_id }
}
pub async fn retrieve(
&self,
) -> Result<
models::ConversationModelSchema,
Error<conversations_api::RetrieveConversationModelError>,
> {
let params = conversations_api::RetrieveConversationModelParams {
model_id: self.model_id.into(),
};
execute_wrapper!(self, conversations_api::retrieve_conversation_model, params)
}
pub async fn update(
&self,
schema: models::ConversationModelUpdateSchema<'_>,
) -> Result<
models::ConversationModelSchema,
Error<conversations_api::UpdateConversationModelError>,
> {
let params = conversations_api::UpdateConversationModelParams {
model_id: self.model_id.into(),
conversation_model_update_schema: schema,
};
execute_wrapper!(self, conversations_api::update_conversation_model, params)
}
pub async fn delete(
&self,
) -> Result<
models::ConversationModelSchema,
Error<conversations_api::DeleteConversationModelError>,
> {
let params = conversations_api::DeleteConversationModelParams {
model_id: self.model_id.into(),
};
execute_wrapper!(self, conversations_api::delete_conversation_model, params)
}
}