meegle/view/
types.rs

1use crate::structs::{FixView, SearchGroup, ViewConf, WorkItemInfo};
2use derive_builder::Builder;
3use serde::Serialize;
4
5#[derive(Builder, Debug, Default, Serialize)]
6#[builder(setter(into, strip_option))]
7#[builder(default)]
8pub struct GetViewListRequest {
9    pub project_key: String,
10    pub work_item_type_key: String,
11    pub view_name: Option<String>,
12    pub view_ids: Option<Vec<String>>,
13    pub created_by: Option<String>,
14    pub page_size: Option<i32>,
15    pub page_num: Option<i32>,
16}
17
18pub type GetViewListResponse = Vec<ViewConf>;
19
20#[derive(Builder, Debug, Default, Serialize)]
21#[builder(setter(into, strip_option))]
22#[builder(default)]
23pub struct GetFixViewRequest {
24    pub project_key: String,
25    pub view_id: String,
26    pub page_size: Option<i32>,
27    pub page_num: Option<i32>,
28}
29
30pub type GetFixViewResponse = FixView;
31
32#[derive(Builder, Debug, Default, Serialize)]
33#[builder(setter(into, strip_option))]
34#[builder(default)]
35pub struct GetPanoramicViewRequest {
36    pub project_key: String,
37    pub view_id: String,
38    pub page_size: Option<i64>,
39    pub page_num: Option<i64>,
40}
41
42pub type GetPanoramicViewResponse = Vec<WorkItemInfo>;
43
44#[derive(Builder, Debug, Default, Serialize)]
45#[builder(setter(into, strip_option))]
46#[builder(default)]
47pub struct CreateFixViewRequest {
48    pub project_key: String,
49    pub work_item_type_key: String,
50    pub work_item_id_list: Vec<i64>,
51    pub name: String,
52    pub cooperation_mode: Option<i32>,
53    pub cooperation_user_keys: Option<Vec<String>>,
54    pub cooperation_team_ids: Option<Vec<i64>>,
55}
56
57pub type CreateFixViewResponse = FixView;
58
59#[derive(Builder, Debug, Default, Serialize)]
60#[builder(setter(into, strip_option))]
61#[builder(default)]
62pub struct UpdateFixViewRequest {
63    pub project_key: String,
64    pub work_item_type_key: String,
65    pub view_id: String,
66    pub add_work_item_ids: Option<Vec<i64>>,
67    pub remove_work_item_ids: Option<Vec<i64>>,
68}
69
70pub type UpdateFixViewResponse = serde_json::Value;
71
72#[derive(Builder, Debug, Default, Serialize)]
73#[builder(setter(into, strip_option))]
74#[builder(default)]
75pub struct CreateConditionViewRequest {
76    pub project_key: String,
77    pub work_item_type_key: String,
78    pub search_group: SearchGroup,
79    pub cooperation_mode: Option<i32>,
80    pub cooperation_user_keys: Option<Vec<String>>,
81    pub cooperation_team_ids: Option<Vec<i64>>,
82    pub name: String,
83}
84
85pub type CreateConditionViewResponse = serde_json::Value;
86
87#[derive(Builder, Debug, Default, Serialize)]
88#[builder(setter(into, strip_option))]
89#[builder(default)]
90pub struct UpdateConditionViewRequest {
91    pub project_key: String,
92    pub work_item_type_key: String,
93    pub view_id: String,
94    pub search_group: SearchGroup,
95    pub cooperation_mode: Option<i32>,
96    pub cooperation_user_keys: Option<Vec<String>>,
97    pub cooperation_team_ids: Option<Vec<i64>>,
98    pub name: Option<String>,
99}
100
101pub type UpdateConditionViewResponse = serde_json::Value;
102
103#[derive(Builder, Debug, Default, Serialize)]
104#[builder(setter(into, strip_option))]
105#[builder(default)]
106pub struct DeleteViewRequest {
107    pub project_key: String,
108    pub view_id: String,
109}
110
111pub type DeleteViewResponse = serde_json::Value;