Skip to main content

wekan_cli/command_result/
integrations.rs

1use serde::Serialize;
2
3#[derive(Debug, Eq, PartialEq, Serialize)]
4pub struct InboundEmailReceipt {
5    pub resource_id: Option<String>,
6}
7
8impl From<crate::client::integrations::inbound_email::InboundEmailReceipt> for InboundEmailReceipt {
9    fn from(receipt: crate::client::integrations::inbound_email::InboundEmailReceipt) -> Self {
10        Self {
11            resource_id: receipt.resource_id,
12        }
13    }
14}
15
16#[derive(Debug, Eq, PartialEq, Serialize)]
17pub struct BounceReceipt {
18    pub ok: bool,
19    pub recorded: u64,
20}
21
22impl From<crate::client::integrations::inbound_email::BounceReceipt> for BounceReceipt {
23    fn from(receipt: crate::client::integrations::inbound_email::BounceReceipt) -> Self {
24        Self {
25            ok: receipt.ok,
26            recorded: receipt.recorded,
27        }
28    }
29}
30
31#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
32pub struct IntegrationDetail {
33    pub integration_id: String,
34    pub enabled: bool,
35    pub title: Option<String>,
36    pub integration_type: String,
37    pub activities: Vec<String>,
38    pub url: String,
39    pub board_id: String,
40    pub created_at: String,
41    pub modified_at: String,
42    pub user_id: String,
43    pub notification_delivery: Option<crate::client::integrations::WebhookNotificationDelivery>,
44    pub mattermost_direct_messages: Option<bool>,
45    pub bot: Option<bool>,
46}
47
48impl From<crate::client::integrations::IntegrationDocument> for IntegrationDetail {
49    fn from(d: crate::client::integrations::IntegrationDocument) -> Self {
50        Self {
51            integration_id: d.integration_id,
52            enabled: d.enabled,
53            title: d.title,
54            integration_type: d.integration_type,
55            activities: d.activities,
56            url: d.url,
57            board_id: d.board_id,
58            created_at: d.created_at,
59            modified_at: d.modified_at,
60            user_id: d.user_id,
61            notification_delivery: d.notification_delivery,
62            mattermost_direct_messages: d.mattermost_direct_messages,
63            bot: d.bot,
64        }
65    }
66}
67
68#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
69pub struct IntegrationCollectionSuccess {
70    pub board_id: String,
71    pub integrations: Vec<IntegrationDetail>,
72}
73
74#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
75pub struct IntegrationCreateSuccess {
76    pub board_id: String,
77    pub integration_id: String,
78}
79
80#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
81#[serde(rename_all = "snake_case")]
82pub enum IntegrationSubmittedField {
83    Enabled,
84    Title,
85    Url,
86    Token,
87    Activities,
88    NotificationDelivery,
89}
90
91#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
92pub struct IntegrationUpdateSuccess {
93    pub board_id: String,
94    pub integration_id: String,
95    pub submitted_fields: Vec<IntegrationSubmittedField>,
96}
97
98#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
99pub struct IntegrationDeleteSuccess {
100    pub board_id: String,
101    pub integration_id: String,
102}
103
104#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
105#[serde(rename_all = "snake_case")]
106pub enum IntegrationActivityAction {
107    Add,
108    Remove,
109}
110
111#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
112pub struct IntegrationActivityMutationSuccess {
113    pub board_id: String,
114    pub integration_id: String,
115    pub action: IntegrationActivityAction,
116    pub requested_activities: Vec<String>,
117    pub activities: Vec<String>,
118}