Skip to main content

wekan_cli/command_result/
integrations.rs

1use serde::Serialize;
2
3#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
4pub struct IntegrationDetail {
5    pub integration_id: String,
6    pub enabled: bool,
7    pub title: Option<String>,
8    pub integration_type: String,
9    pub activities: Vec<String>,
10    pub url: String,
11    pub board_id: String,
12    pub created_at: String,
13    pub modified_at: String,
14    pub user_id: String,
15}
16
17impl From<crate::client::integrations::IntegrationDocument> for IntegrationDetail {
18    fn from(d: crate::client::integrations::IntegrationDocument) -> Self {
19        Self {
20            integration_id: d.integration_id,
21            enabled: d.enabled,
22            title: d.title,
23            integration_type: d.integration_type,
24            activities: d.activities,
25            url: d.url,
26            board_id: d.board_id,
27            created_at: d.created_at,
28            modified_at: d.modified_at,
29            user_id: d.user_id,
30        }
31    }
32}
33
34#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
35pub struct IntegrationCollectionSuccess {
36    pub board_id: String,
37    pub integrations: Vec<IntegrationDetail>,
38}
39
40#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
41pub struct IntegrationCreateSuccess {
42    pub board_id: String,
43    pub integration_id: String,
44}
45
46#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
47#[serde(rename_all = "snake_case")]
48pub enum IntegrationSubmittedField {
49    Enabled,
50    Title,
51    Url,
52    Token,
53    Activities,
54}
55
56#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
57pub struct IntegrationUpdateSuccess {
58    pub board_id: String,
59    pub integration_id: String,
60    pub submitted_fields: Vec<IntegrationSubmittedField>,
61}
62
63#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
64pub struct IntegrationDeleteSuccess {
65    pub board_id: String,
66    pub integration_id: String,
67}
68
69#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
70#[serde(rename_all = "snake_case")]
71pub enum IntegrationActivityAction {
72    Add,
73    Remove,
74}
75
76#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
77pub struct IntegrationActivityMutationSuccess {
78    pub board_id: String,
79    pub integration_id: String,
80    pub action: IntegrationActivityAction,
81    pub requested_activities: Vec<String>,
82    pub activities: Vec<String>,
83}