use leash_sdk::LeashIntegrations;
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct SearchNotesParams {
pub query: String,
#[serde(rename = "parentNoteId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parentnoteid: Option<String>,
#[serde(rename = "reviewState")]
#[serde(skip_serializing_if = "Option::is_none")]
pub reviewstate: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page: Option<f64>,
#[serde(rename = "hitsPerPage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub hitsperpage: Option<f64>,
#[serde(rename = "lastEditedAfter")]
#[serde(skip_serializing_if = "Option::is_none")]
pub lasteditedafter: Option<String>,
#[serde(rename = "includeArchived")]
#[serde(skip_serializing_if = "Option::is_none")]
pub includearchived: Option<bool>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct AskSliteParams {
pub question: String,
#[serde(rename = "parentNoteId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parentnoteid: Option<String>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct GetNoteParams {
#[serde(rename = "noteId")]
pub noteid: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub format: Option<String>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct GetNoteChildrenParams {
#[serde(rename = "noteId")]
pub noteid: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct CreateNoteParams {
pub title: String,
#[serde(rename = "parentNoteId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parentnoteid: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub markdown: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub html: Option<String>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct UpdateNoteParams {
#[serde(rename = "noteId")]
pub noteid: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub markdown: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub html: Option<String>,
}
pub struct SliteClient {
leash: LeashIntegrations,
}
impl SliteClient {
pub fn new(leash: LeashIntegrations) -> Self {
Self { leash }
}
pub async fn search_notes(&self, params: &SearchNotesParams) -> Result<serde_json::Value, leash_sdk::LeashError> {
self.leash.call("slite", "search-notes", Some(serde_json::to_value(params).unwrap_or_default())).await
}
pub async fn ask_slite(&self, params: &AskSliteParams) -> Result<serde_json::Value, leash_sdk::LeashError> {
self.leash.call("slite", "ask-slite", Some(serde_json::to_value(params).unwrap_or_default())).await
}
pub async fn get_note(&self, params: &GetNoteParams) -> Result<serde_json::Value, leash_sdk::LeashError> {
self.leash.call("slite", "get-note", Some(serde_json::to_value(params).unwrap_or_default())).await
}
pub async fn get_note_children(&self, params: &GetNoteChildrenParams) -> Result<serde_json::Value, leash_sdk::LeashError> {
self.leash.call("slite", "get-note-children", Some(serde_json::to_value(params).unwrap_or_default())).await
}
pub async fn create_note(&self, params: &CreateNoteParams) -> Result<serde_json::Value, leash_sdk::LeashError> {
self.leash.call("slite", "create-note", Some(serde_json::to_value(params).unwrap_or_default())).await
}
pub async fn update_note(&self, params: &UpdateNoteParams) -> Result<serde_json::Value, leash_sdk::LeashError> {
self.leash.call("slite", "update-note", Some(serde_json::to_value(params).unwrap_or_default())).await
}
}