use crate::client::SlackClient;
use crate::error::Result;
use serde::{Deserialize, Serialize};
pub struct DialogApi {
client: SlackClient,
}
impl DialogApi {
pub(crate) fn new(client: SlackClient) -> Self {
Self { client }
}
pub async fn open(
&self,
trigger_id: &str,
dialog: serde_json::Value,
) -> Result<DialogOpenResponse> {
let params = DialogOpenRequest {
trigger_id: trigger_id.to_string(),
dialog,
};
self.client.post("dialog.open", ¶ms).await
}
}
#[derive(Debug, Serialize)]
pub struct DialogOpenRequest {
pub trigger_id: String,
pub dialog: serde_json::Value,
}
#[derive(Debug, Deserialize)]
pub struct DialogOpenResponse {}