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    pub mutation_confirmed: bool,
62}
63
64#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
65pub struct IntegrationDeleteSuccess {
66    pub board_id: String,
67    pub integration_id: String,
68    pub deletion_requested: bool,
69    pub mutation_confirmed: bool,
70}
71
72#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
73#[serde(rename_all = "snake_case")]
74pub enum IntegrationActivityAction {
75    Add,
76    Remove,
77}
78
79#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
80pub struct IntegrationActivityMutationSuccess {
81    pub board_id: String,
82    pub integration_id: String,
83    pub action: IntegrationActivityAction,
84    pub requested_activities: Vec<String>,
85    pub activities: Vec<String>,
86}