Skip to main content

wekan_cli/
command_result.rs

1mod api;
2mod auth;
3mod boards;
4mod cards;
5mod checklist_items;
6mod checklists;
7mod comments;
8mod custom_field_items;
9mod custom_fields;
10mod lists;
11mod profiles;
12mod swimlanes;
13mod users;
14
15pub use api::{
16    ApiResponseSuccess, RawApiResponseData, RawResponseBody, RawResponseHeader, RawValueEncoding,
17};
18pub use auth::{
19    AuthStatusEmail, AuthStatusSuccess, AuthStatusUser, AuthSuccess, LogoutScope, LogoutSuccess,
20};
21pub use boards::{
22    BoardCountSuccess, BoardCreateSuccess, BoardDeleteSuccess, BoardDetail, BoardDetailDomain,
23    BoardDetailLabel, BoardDetailMember, BoardDetailOrganization, BoardDetailTeam,
24    BoardDetailWatcher, BoardListScope, BoardListSuccess, BoardRenameSuccess, BoardSummary,
25    UserBoardSummary,
26};
27pub use cards::{
28    CardArchiveSuccess, CardCollectionSuccess, CardCreateSuccess, CardDeleteMode,
29    CardDeleteSuccess, CardDetail, CardDetailCustomField, CardDetailCustomFieldValue,
30    CardDetailDependency, CardDetailLocation, CardDetailPoker, CardDetailSticker,
31    CardDetailStickerHighlight, CardDetailVote, CardRestoreSuccess, CardSubmittedField,
32    CardSummary, CardUpdateSuccess,
33};
34pub use cards::{CardCustomFieldQuerySuccess, CardCustomFieldSetSuccess};
35pub use checklist_items::{
36    ChecklistItemCreateSuccess, ChecklistItemDeleteMode, ChecklistItemDeleteSuccess,
37    ChecklistItemDetail, ChecklistItemSubmittedField, ChecklistItemUpdateSuccess,
38};
39pub use checklists::{
40    ChecklistCollectionSuccess, ChecklistCreateSuccess, ChecklistDeleteMode,
41    ChecklistDeleteSuccess, ChecklistDetail, ChecklistItemSummary, ChecklistSummary,
42};
43pub use comments::{
44    CommentCollectionSuccess, CommentCreateSuccess, CommentDeleteMode, CommentDeleteSuccess,
45    CommentDetail, CommentSummary,
46};
47pub use custom_field_items::{
48    CustomFieldItemCreateSuccess, CustomFieldItemDeleteMode, CustomFieldItemDeleteSuccess,
49    CustomFieldItemSubmittedField, CustomFieldItemUpdateSuccess,
50};
51pub use custom_fields::{
52    CustomFieldCollectionSuccess, CustomFieldCreateSuccess, CustomFieldDeleteMode,
53    CustomFieldDeleteSuccess, CustomFieldDetail, CustomFieldDropdownItem, CustomFieldSettings,
54    CustomFieldSubmittedField, CustomFieldSummary, CustomFieldUpdateSuccess,
55};
56pub use lists::{
57    ListCollectionSuccess, ListCreateSuccess, ListDeleteMode, ListDeleteSuccess, ListDetail,
58    ListSummary, ListUpdateSuccess, ListUpdatedField, ListWipLimitDetail,
59};
60pub use profiles::{ProfileItem, ProfileListSuccess, ProfileRemoveSuccess};
61pub use swimlanes::{
62    SwimlaneCollectionSuccess, SwimlaneCreateSuccess, SwimlaneDeleteMode, SwimlaneDeleteSuccess,
63    SwimlaneDetail, SwimlaneSummary, SwimlaneUpdateSuccess, SwimlaneUpdatedField,
64};
65pub use users::{
66    UserBoardMembership, UserBoardsSuccess, UserCard, UserCardsSuccess, UserCreateSuccess,
67    UserCreateWarning, UserDeleteSuccess, UserDetail, UserEmail, UserListSuccess, UserLoginAction,
68    UserLoginChangeSuccess, UserOrganization, UserOwnershipSuccess, UserProfileDetail,
69    UserProfileNotificationDetail, UserProfileStarredPageDetail, UserSessionData, UserSummary,
70    UserTeam, UserWorkspaceNodeDetail,
71};
72
73use serde::Serialize;
74
75pub mod attachments;
76pub use attachments::*;
77
78#[derive(Debug, Eq, PartialEq)]
79pub enum CommandSuccess {
80    AttachmentList(AttachmentCollectionSuccess),
81    AttachmentShown(crate::client::attachments::AttachmentInfo),
82    AttachmentUploaded(
83        AttachmentMutationSuccess<crate::client::attachments::AttachmentUploadResponse>,
84    ),
85    BackgroundUploaded(
86        AttachmentMutationSuccess<crate::client::attachments::BackgroundUploadResponse>,
87    ),
88    AttachmentCopied(AttachmentMutationSuccess<crate::client::attachments::AttachmentCopyResponse>),
89    AttachmentMoved(AttachmentMutationSuccess<crate::client::attachments::AttachmentMoveResponse>),
90    AttachmentDeleted(
91        AttachmentMutationSuccess<crate::client::attachments::AttachmentDeleteResponse>,
92    ),
93    AttachmentDownloaded(AttachmentDownloadSuccess),
94    ApiResponse(ApiResponseSuccess),
95    Cancelled(CancellationSuccess),
96    Registration(AuthSuccess),
97    Login(AuthSuccess),
98    Logout(LogoutSuccess),
99    AuthStatus(AuthStatusSuccess),
100    UserCurrent(UserDetail),
101    UserList(UserListSuccess),
102    UserShown(UserDetail),
103    UserUpdated(UserDetail),
104    UserCards(UserCardsSuccess),
105    UserCreated(UserCreateSuccess),
106    UserBoards(UserBoardsSuccess),
107    UserOwnershipTaken(UserOwnershipSuccess),
108    UserLoginChanged(UserLoginChangeSuccess),
109    UserDeleted(UserDeleteSuccess),
110    BoardList(BoardListSuccess),
111    BoardCount(BoardCountSuccess),
112    BoardShown(Box<BoardDetail>),
113    BoardCreated(BoardCreateSuccess),
114    BoardRenamed(BoardRenameSuccess),
115    BoardDeleted(BoardDeleteSuccess),
116    ListCollection(ListCollectionSuccess),
117    ListShown(ListDetail),
118    ListCreated(ListCreateSuccess),
119    ListUpdated(ListUpdateSuccess),
120    ListDeleted(ListDeleteSuccess),
121    CardCollection(CardCollectionSuccess),
122    CardShown(Box<CardDetail>),
123    CardCreated(CardCreateSuccess),
124    CardUpdated(CardUpdateSuccess),
125    CardArchived(CardArchiveSuccess),
126    CardRestored(CardRestoreSuccess),
127    CardDeleted(CardDeleteSuccess),
128    ChecklistCollection(ChecklistCollectionSuccess),
129    ChecklistShown(ChecklistDetail),
130    ChecklistCreated(ChecklistCreateSuccess),
131    ChecklistDeleted(ChecklistDeleteSuccess),
132    ChecklistItemShown(ChecklistItemDetail),
133    ChecklistItemCreated(ChecklistItemCreateSuccess),
134    ChecklistItemUpdated(ChecklistItemUpdateSuccess),
135    ChecklistItemDeleted(ChecklistItemDeleteSuccess),
136    CustomFieldCollection(CustomFieldCollectionSuccess),
137    CustomFieldShown(CustomFieldDetail),
138    CustomFieldCreated(CustomFieldCreateSuccess),
139    CustomFieldUpdated(CustomFieldUpdateSuccess),
140    CustomFieldDeleted(CustomFieldDeleteSuccess),
141    CustomFieldItemsCreated(CustomFieldItemCreateSuccess),
142    CustomFieldItemUpdated(CustomFieldItemUpdateSuccess),
143    CustomFieldItemDeleted(CustomFieldItemDeleteSuccess),
144    CardCustomFieldSet(CardCustomFieldSetSuccess),
145    CardCustomFieldQuery(CardCustomFieldQuerySuccess),
146    CommentCollection(CommentCollectionSuccess),
147    CommentShown(CommentDetail),
148    CommentCreated(CommentCreateSuccess),
149    CommentDeleted(CommentDeleteSuccess),
150    SwimlaneCollection(SwimlaneCollectionSuccess),
151    SwimlaneShown(SwimlaneDetail),
152    SwimlaneCreated(SwimlaneCreateSuccess),
153    SwimlaneUpdated(SwimlaneUpdateSuccess),
154    SwimlaneDeleted(SwimlaneDeleteSuccess),
155    ProfileAdded(ProfileItem),
156    ProfileList(ProfileListSuccess),
157    ProfileShown(ProfileItem),
158    ProfileUsed(ProfileItem),
159    ProfileUpdated(ProfileItem),
160    ProfileRemoved(ProfileRemoveSuccess),
161}
162
163#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
164#[serde(rename_all = "snake_case")]
165pub enum DestructiveOperation {
166    AttachmentDelete,
167    ApiRequest,
168    AuthLogout,
169    ProfileRemove,
170    UserTakeOwnership,
171    UserDisableLogin,
172    UserDelete,
173    BoardDelete,
174    ListDelete,
175    CardDelete,
176    ChecklistDelete,
177    ChecklistItemDelete,
178    CustomFieldDelete,
179    CustomFieldItemDelete,
180    CommentDelete,
181    SwimlaneDelete,
182}
183
184impl DestructiveOperation {
185    pub const fn as_command(self) -> &'static str {
186        match self {
187            Self::AttachmentDelete => "attachment delete",
188            Self::ApiRequest => "api request",
189            Self::AuthLogout => "auth logout",
190            Self::ProfileRemove => "profile remove",
191            Self::UserTakeOwnership => "user take-ownership",
192            Self::UserDisableLogin => "user disable-login",
193            Self::UserDelete => "user delete",
194            Self::BoardDelete => "board delete",
195            Self::ListDelete => "list delete",
196            Self::CardDelete => "card delete",
197            Self::ChecklistDelete => "checklist delete",
198            Self::ChecklistItemDelete => "checklist-item delete",
199            Self::CustomFieldDelete => "custom-field delete",
200            Self::CustomFieldItemDelete => "custom-field-item delete",
201            Self::CommentDelete => "comment delete",
202            Self::SwimlaneDelete => "swimlane delete",
203        }
204    }
205}
206
207#[derive(Debug, Eq, PartialEq, Serialize)]
208pub struct CancellationSuccess {
209    pub cancelled: bool,
210    pub operation: DestructiveOperation,
211}
212
213impl CancellationSuccess {
214    pub const fn new(operation: DestructiveOperation) -> Self {
215        Self {
216            cancelled: true,
217            operation,
218        }
219    }
220}