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
75#[derive(Debug, Eq, PartialEq)]
76pub enum CommandSuccess {
77    ApiResponse(ApiResponseSuccess),
78    Cancelled(CancellationSuccess),
79    Registration(AuthSuccess),
80    Login(AuthSuccess),
81    Logout(LogoutSuccess),
82    AuthStatus(AuthStatusSuccess),
83    UserCurrent(UserDetail),
84    UserList(UserListSuccess),
85    UserShown(UserDetail),
86    UserUpdated(UserDetail),
87    UserCards(UserCardsSuccess),
88    UserCreated(UserCreateSuccess),
89    UserBoards(UserBoardsSuccess),
90    UserOwnershipTaken(UserOwnershipSuccess),
91    UserLoginChanged(UserLoginChangeSuccess),
92    UserDeleted(UserDeleteSuccess),
93    BoardList(BoardListSuccess),
94    BoardCount(BoardCountSuccess),
95    BoardShown(Box<BoardDetail>),
96    BoardCreated(BoardCreateSuccess),
97    BoardRenamed(BoardRenameSuccess),
98    BoardDeleted(BoardDeleteSuccess),
99    ListCollection(ListCollectionSuccess),
100    ListShown(ListDetail),
101    ListCreated(ListCreateSuccess),
102    ListUpdated(ListUpdateSuccess),
103    ListDeleted(ListDeleteSuccess),
104    CardCollection(CardCollectionSuccess),
105    CardShown(Box<CardDetail>),
106    CardCreated(CardCreateSuccess),
107    CardUpdated(CardUpdateSuccess),
108    CardArchived(CardArchiveSuccess),
109    CardRestored(CardRestoreSuccess),
110    CardDeleted(CardDeleteSuccess),
111    ChecklistCollection(ChecklistCollectionSuccess),
112    ChecklistShown(ChecklistDetail),
113    ChecklistCreated(ChecklistCreateSuccess),
114    ChecklistDeleted(ChecklistDeleteSuccess),
115    ChecklistItemShown(ChecklistItemDetail),
116    ChecklistItemCreated(ChecklistItemCreateSuccess),
117    ChecklistItemUpdated(ChecklistItemUpdateSuccess),
118    ChecklistItemDeleted(ChecklistItemDeleteSuccess),
119    CustomFieldCollection(CustomFieldCollectionSuccess),
120    CustomFieldShown(CustomFieldDetail),
121    CustomFieldCreated(CustomFieldCreateSuccess),
122    CustomFieldUpdated(CustomFieldUpdateSuccess),
123    CustomFieldDeleted(CustomFieldDeleteSuccess),
124    CustomFieldItemsCreated(CustomFieldItemCreateSuccess),
125    CustomFieldItemUpdated(CustomFieldItemUpdateSuccess),
126    CustomFieldItemDeleted(CustomFieldItemDeleteSuccess),
127    CardCustomFieldSet(CardCustomFieldSetSuccess),
128    CardCustomFieldQuery(CardCustomFieldQuerySuccess),
129    CommentCollection(CommentCollectionSuccess),
130    CommentShown(CommentDetail),
131    CommentCreated(CommentCreateSuccess),
132    CommentDeleted(CommentDeleteSuccess),
133    SwimlaneCollection(SwimlaneCollectionSuccess),
134    SwimlaneShown(SwimlaneDetail),
135    SwimlaneCreated(SwimlaneCreateSuccess),
136    SwimlaneUpdated(SwimlaneUpdateSuccess),
137    SwimlaneDeleted(SwimlaneDeleteSuccess),
138    ProfileAdded(ProfileItem),
139    ProfileList(ProfileListSuccess),
140    ProfileShown(ProfileItem),
141    ProfileUsed(ProfileItem),
142    ProfileUpdated(ProfileItem),
143    ProfileRemoved(ProfileRemoveSuccess),
144}
145
146#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
147#[serde(rename_all = "snake_case")]
148pub enum DestructiveOperation {
149    ApiRequest,
150    AuthLogout,
151    ProfileRemove,
152    UserTakeOwnership,
153    UserDisableLogin,
154    UserDelete,
155    BoardDelete,
156    ListDelete,
157    CardDelete,
158    ChecklistDelete,
159    ChecklistItemDelete,
160    CustomFieldDelete,
161    CustomFieldItemDelete,
162    CommentDelete,
163    SwimlaneDelete,
164}
165
166impl DestructiveOperation {
167    pub const fn as_command(self) -> &'static str {
168        match self {
169            Self::ApiRequest => "api request",
170            Self::AuthLogout => "auth logout",
171            Self::ProfileRemove => "profile remove",
172            Self::UserTakeOwnership => "user take-ownership",
173            Self::UserDisableLogin => "user disable-login",
174            Self::UserDelete => "user delete",
175            Self::BoardDelete => "board delete",
176            Self::ListDelete => "list delete",
177            Self::CardDelete => "card delete",
178            Self::ChecklistDelete => "checklist delete",
179            Self::ChecklistItemDelete => "checklist-item delete",
180            Self::CustomFieldDelete => "custom-field delete",
181            Self::CustomFieldItemDelete => "custom-field-item delete",
182            Self::CommentDelete => "comment delete",
183            Self::SwimlaneDelete => "swimlane delete",
184        }
185    }
186}
187
188#[derive(Debug, Eq, PartialEq, Serialize)]
189pub struct CancellationSuccess {
190    pub cancelled: bool,
191    pub operation: DestructiveOperation,
192}
193
194impl CancellationSuccess {
195    pub const fn new(operation: DestructiveOperation) -> Self {
196        Self {
197            cancelled: true,
198            operation,
199        }
200    }
201}