slack_web_api/api/
dialog.rs1#![allow(unused_imports)]
4
5use crate::objects::*;
6use crate::{
7 CursorPaginated, NextCursor, ResponseMetadata, SlackApiMethod, SlackClient, SlackError,
8};
9use serde::{Deserialize, Serialize};
10
11#[doc(alias = "dialog.open")]
15#[derive(Debug, Clone, PartialEq, Serialize)]
16#[non_exhaustive]
17pub struct DialogOpenRequest {
18 pub dialog: String,
20 pub trigger_id: String,
22}
23
24impl DialogOpenRequest {
25 pub fn new(dialog: impl Into<String>, trigger_id: impl Into<String>) -> Self {
26 Self {
27 dialog: dialog.into(),
28 trigger_id: trigger_id.into(),
29 }
30 }
31}
32
33impl SlackApiMethod for DialogOpenRequest {
34 const METHOD: &'static str = "dialog.open";
35 type Response = DialogOpenResponse;
36}
37
38#[doc(alias = "dialog.open")]
40#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
41pub struct DialogOpenResponse {
42 #[serde(flatten)]
44 pub extra: serde_json::Map<String, serde_json::Value>,
45 #[serde(
46 default,
47 deserialize_with = "crate::de::opt_object",
48 skip_serializing_if = "Option::is_none"
49 )]
50 pub response_metadata: Option<ResponseMetadata>,
51 #[serde(
52 default,
53 deserialize_with = "crate::de::opt_string",
54 skip_serializing_if = "Option::is_none"
55 )]
56 pub warning: Option<String>,
57}
58
59impl SlackClient {
60 #[doc(alias = "dialog.open")]
68 pub async fn dialog_open(
69 &self,
70 request: &DialogOpenRequest,
71 ) -> Result<DialogOpenResponse, SlackError> {
72 self.call(request).await
73 }
74}