Skip to main content

wekan_cli/
command_result.rs

1mod api;
2mod auth;
3mod board_settings;
4mod boards;
5mod bulk_cards;
6mod cards;
7mod checklist_items;
8mod checklists;
9mod comments;
10mod custom_field_items;
11mod custom_fields;
12mod dependencies;
13mod integrations;
14mod rules;
15pub use rules::*;
16mod lists;
17mod profiles;
18mod swimlanes;
19mod users;
20
21pub use api::{
22    ApiResponseSuccess, RawApiResponseData, RawResponseBody, RawResponseHeader, RawValueEncoding,
23};
24pub use auth::{
25    AuthStatusEmail, AuthStatusSuccess, AuthStatusUser, AuthSuccess, LogoutScope, LogoutSuccess,
26};
27pub use board_settings::*;
28pub use boards::{
29    BoardCountSuccess, BoardCreateSuccess, BoardDeleteSuccess, BoardDetail, BoardDetailDomain,
30    BoardDetailLabel, BoardDetailMember, BoardDetailOrganization, BoardDetailTeam,
31    BoardDetailWatcher, BoardListScope, BoardListSuccess, BoardRenameSuccess, BoardSummary,
32    UserBoardSummary,
33};
34pub use boards::{
35    BoardMemberCollectionSuccess, BoardMemberMutationSuccess, BoardMemberSubmittedField,
36    BoardMemberUpdateSuccess,
37};
38pub use cards::{
39    CardArchiveSuccess, CardCollectionSuccess, CardCreateSuccess, CardDeleteMode,
40    CardDeleteSuccess, CardDetail, CardDetailCustomField, CardDetailCustomFieldValue,
41    CardDetailDependency, CardDetailLocation, CardDetailPoker, CardDetailSticker,
42    CardDetailStickerHighlight, CardDetailVote, CardRestoreSuccess, CardSubmittedField,
43    CardSummary, CardUpdateSuccess,
44};
45pub use cards::{
46    CardAssigneeCollectionSuccess, CardMemberCollectionSuccess, CardMembershipKind,
47    CardMembershipMutationSuccess,
48};
49pub use cards::{CardCustomFieldQuerySuccess, CardCustomFieldSetSuccess};
50pub use checklist_items::{
51    ChecklistItemCreateSuccess, ChecklistItemDeleteMode, ChecklistItemDeleteSuccess,
52    ChecklistItemDetail, ChecklistItemSubmittedField, ChecklistItemUpdateSuccess,
53};
54pub use checklists::{
55    ChecklistCollectionSuccess, ChecklistCreateSuccess, ChecklistDeleteMode,
56    ChecklistDeleteSuccess, ChecklistDetail, ChecklistItemSummary, ChecklistSummary,
57};
58pub use comments::{
59    CommentCollectionSuccess, CommentCreateSuccess, CommentDeleteMode, CommentDeleteSuccess,
60    CommentDetail, CommentSummary,
61};
62pub use custom_field_items::{
63    CustomFieldItemCreateSuccess, CustomFieldItemDeleteMode, CustomFieldItemDeleteSuccess,
64    CustomFieldItemSubmittedField, CustomFieldItemUpdateSuccess,
65};
66pub use custom_fields::{
67    CustomFieldCollectionSuccess, CustomFieldCreateSuccess, CustomFieldDeleteMode,
68    CustomFieldDeleteSuccess, CustomFieldDetail, CustomFieldDropdownItem, CustomFieldSettings,
69    CustomFieldSubmittedField, CustomFieldSummary, CustomFieldUpdateSuccess,
70};
71pub use dependencies::{
72    BoardDependencyCollectionSuccess, CardDependencyCollectionSuccess, DependencyCreateSuccess,
73    DependencyDeleteSuccess, DependencyLine, DependencySubmittedField, DependencySummary,
74    DependencyUpdateSuccess,
75};
76pub use lists::{
77    ListCollectionSuccess, ListCreateSuccess, ListDeleteMode, ListDeleteSuccess, ListDetail,
78    ListSummary, ListUpdateSuccess, ListUpdatedField, ListWipLimitDetail,
79};
80pub use profiles::{ProfileItem, ProfileListSuccess, ProfileRemoveSuccess};
81pub use swimlanes::{
82    SwimlaneCollectionSuccess, SwimlaneCreateSuccess, SwimlaneDeleteMode, SwimlaneDeleteSuccess,
83    SwimlaneDetail, SwimlaneSummary, SwimlaneUpdateSuccess, SwimlaneUpdatedField,
84};
85pub use users::{
86    UserBoardMembership, UserBoardsSuccess, UserCard, UserCardsSuccess, UserCreateSuccess,
87    UserCreateWarning, UserDeleteSuccess, UserDetail, UserEmail, UserListSuccess, UserLoginAction,
88    UserLoginChangeSuccess, UserOrganization, UserOwnershipSuccess, UserProfileDetail,
89    UserProfileNotificationDetail, UserProfileStarredPageDetail, UserSessionData, UserSummary,
90    UserTeam, UserWorkspaceNodeDetail,
91};
92
93use serde::Serialize;
94
95pub use bulk_cards::*;
96pub use integrations::*;
97
98pub use boards::{BoardLabelAdded, BoardLabelCollection};
99pub use cards::CardLabelCollection;
100
101pub mod attachments;
102pub use attachments::*;
103pub use boards::BoardCopySuccess;
104pub use cards::{
105    CardCopySuccess, CardCountSuccess, SwimlaneCardCollectionSuccess, SwimlaneCardSummary,
106};
107pub use lists::ListTransferSuccess;
108pub use swimlanes::SwimlaneTransferSuccess;
109
110#[derive(Debug, Eq, PartialEq)]
111pub enum CommandSuccess {
112    RuleCollection(RuleCollectionSuccess),
113    RuleShown(Box<RuleDetail>),
114    RuleCreated(RuleCreateSuccess),
115    RuleUpdated(RuleUpdateSuccess),
116    RuleDeleted(RuleDeleteSuccess),
117    BoardCardSettings(BoardCardSettingsSuccess),
118    BoardCardSettingsUpdated(BoardCardSettingsUpdateSuccess),
119    BoardDomains(BoardDomainCollectionSuccess),
120    BoardDomainChanged(BoardDomainMutationSuccess),
121    IntegrationCollection(IntegrationCollectionSuccess),
122    IntegrationShown(IntegrationDetail),
123    IntegrationCreated(IntegrationCreateSuccess),
124    IntegrationUpdated(IntegrationUpdateSuccess),
125    IntegrationDeleted(IntegrationDeleteSuccess),
126    IntegrationActivitiesChanged(IntegrationActivityMutationSuccess),
127    BoardCopied(boards::BoardCopySuccess),
128    CardCopied(cards::CardCopySuccess),
129    ListCopied(lists::ListTransferSuccess),
130    ListMoved(lists::ListTransferSuccess),
131    SwimlaneCopied(swimlanes::SwimlaneTransferSuccess),
132    SwimlaneMoved(swimlanes::SwimlaneTransferSuccess),
133    CardCount(cards::CardCountSuccess),
134    SwimlaneCards(cards::SwimlaneCardCollectionSuccess),
135    CardBatch(CardBatchResult),
136    BoardLabels(BoardLabelCollection),
137    BoardLabelAdded(BoardLabelAdded),
138    CardLabels(CardLabelCollection),
139    BoardMembers(BoardMemberCollectionSuccess),
140    BoardMemberChanged(BoardMemberMutationSuccess),
141    BoardMemberUpdated(BoardMemberUpdateSuccess),
142    CardMembers(CardMemberCollectionSuccess),
143    CardAssignees(CardAssigneeCollectionSuccess),
144    CardMembershipChanged(CardMembershipMutationSuccess),
145    BoardDependencies(BoardDependencyCollectionSuccess),
146    CardDependencies(CardDependencyCollectionSuccess),
147    DependencyCreated(DependencyCreateSuccess),
148    DependencyUpdated(DependencyUpdateSuccess),
149    DependencyDeleted(DependencyDeleteSuccess),
150    AttachmentList(AttachmentCollectionSuccess),
151    AttachmentShown(crate::client::attachments::AttachmentInfo),
152    AttachmentUploaded(
153        AttachmentMutationSuccess<crate::client::attachments::AttachmentUploadResponse>,
154    ),
155    BackgroundUploaded(
156        AttachmentMutationSuccess<crate::client::attachments::BackgroundUploadResponse>,
157    ),
158    AttachmentCopied(AttachmentMutationSuccess<crate::client::attachments::AttachmentCopyResponse>),
159    AttachmentMoved(AttachmentMutationSuccess<crate::client::attachments::AttachmentMoveResponse>),
160    AttachmentDeleted(
161        AttachmentMutationSuccess<crate::client::attachments::AttachmentDeleteResponse>,
162    ),
163    AttachmentDownloaded(AttachmentDownloadSuccess),
164    ApiResponse(ApiResponseSuccess),
165    Cancelled(CancellationSuccess),
166    Registration(AuthSuccess),
167    Login(AuthSuccess),
168    Logout(LogoutSuccess),
169    AuthStatus(AuthStatusSuccess),
170    UserCurrent(UserDetail),
171    UserList(UserListSuccess),
172    UserShown(UserDetail),
173    UserUpdated(UserDetail),
174    UserCards(UserCardsSuccess),
175    UserCreated(UserCreateSuccess),
176    UserBoards(UserBoardsSuccess),
177    UserOwnershipTaken(UserOwnershipSuccess),
178    UserLoginChanged(UserLoginChangeSuccess),
179    UserDeleted(UserDeleteSuccess),
180    BoardList(BoardListSuccess),
181    BoardCount(BoardCountSuccess),
182    BoardShown(Box<BoardDetail>),
183    BoardCreated(BoardCreateSuccess),
184    BoardRenamed(BoardRenameSuccess),
185    BoardDeleted(BoardDeleteSuccess),
186    ListCollection(ListCollectionSuccess),
187    ListShown(ListDetail),
188    ListCreated(ListCreateSuccess),
189    ListUpdated(ListUpdateSuccess),
190    ListDeleted(ListDeleteSuccess),
191    CardCollection(CardCollectionSuccess),
192    CardShown(Box<CardDetail>),
193    CardCreated(CardCreateSuccess),
194    CardUpdated(CardUpdateSuccess),
195    CardArchived(CardArchiveSuccess),
196    CardRestored(CardRestoreSuccess),
197    CardDeleted(CardDeleteSuccess),
198    ChecklistCollection(ChecklistCollectionSuccess),
199    ChecklistShown(ChecklistDetail),
200    ChecklistCreated(ChecklistCreateSuccess),
201    ChecklistDeleted(ChecklistDeleteSuccess),
202    ChecklistItemShown(ChecklistItemDetail),
203    ChecklistItemCreated(ChecklistItemCreateSuccess),
204    ChecklistItemUpdated(ChecklistItemUpdateSuccess),
205    ChecklistItemDeleted(ChecklistItemDeleteSuccess),
206    CustomFieldCollection(CustomFieldCollectionSuccess),
207    CustomFieldShown(CustomFieldDetail),
208    CustomFieldCreated(CustomFieldCreateSuccess),
209    CustomFieldUpdated(CustomFieldUpdateSuccess),
210    CustomFieldDeleted(CustomFieldDeleteSuccess),
211    CustomFieldItemsCreated(CustomFieldItemCreateSuccess),
212    CustomFieldItemUpdated(CustomFieldItemUpdateSuccess),
213    CustomFieldItemDeleted(CustomFieldItemDeleteSuccess),
214    CardCustomFieldSet(CardCustomFieldSetSuccess),
215    CardCustomFieldQuery(CardCustomFieldQuerySuccess),
216    CommentCollection(CommentCollectionSuccess),
217    CommentShown(CommentDetail),
218    CommentCreated(CommentCreateSuccess),
219    CommentDeleted(CommentDeleteSuccess),
220    SwimlaneCollection(SwimlaneCollectionSuccess),
221    SwimlaneShown(SwimlaneDetail),
222    SwimlaneCreated(SwimlaneCreateSuccess),
223    SwimlaneUpdated(SwimlaneUpdateSuccess),
224    SwimlaneDeleted(SwimlaneDeleteSuccess),
225    ProfileAdded(ProfileItem),
226    ProfileList(ProfileListSuccess),
227    ProfileShown(ProfileItem),
228    ProfileUsed(ProfileItem),
229    ProfileUpdated(ProfileItem),
230    ProfileRemoved(ProfileRemoveSuccess),
231}
232
233#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
234#[serde(rename_all = "snake_case")]
235pub enum MembershipAction {
236    Add,
237    Remove,
238}
239
240#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
241#[serde(rename_all = "snake_case")]
242pub enum DestructiveOperation {
243    IntegrationDelete,
244    RuleDelete,
245    CardBulkDelete,
246    DependencyDelete,
247    AttachmentDelete,
248    ApiRequest,
249    AuthLogout,
250    ProfileRemove,
251    UserTakeOwnership,
252    UserDisableLogin,
253    UserDelete,
254    BoardDelete,
255    ListDelete,
256    CardDelete,
257    ChecklistDelete,
258    ChecklistItemDelete,
259    CustomFieldDelete,
260    CustomFieldItemDelete,
261    CommentDelete,
262    SwimlaneDelete,
263}
264
265impl DestructiveOperation {
266    pub const fn as_command(self) -> &'static str {
267        match self {
268            Self::IntegrationDelete => "integration delete",
269            Self::RuleDelete => "rule delete",
270            Self::CardBulkDelete => "card bulk delete",
271            Self::DependencyDelete => "dependency delete",
272            Self::AttachmentDelete => "attachment delete",
273            Self::ApiRequest => "api request",
274            Self::AuthLogout => "auth logout",
275            Self::ProfileRemove => "profile remove",
276            Self::UserTakeOwnership => "user take-ownership",
277            Self::UserDisableLogin => "user disable-login",
278            Self::UserDelete => "user delete",
279            Self::BoardDelete => "board delete",
280            Self::ListDelete => "list delete",
281            Self::CardDelete => "card delete",
282            Self::ChecklistDelete => "checklist delete",
283            Self::ChecklistItemDelete => "checklist-item delete",
284            Self::CustomFieldDelete => "custom-field delete",
285            Self::CustomFieldItemDelete => "custom-field-item delete",
286            Self::CommentDelete => "comment delete",
287            Self::SwimlaneDelete => "swimlane delete",
288        }
289    }
290}
291
292#[derive(Debug, Eq, PartialEq, Serialize)]
293pub struct CancellationSuccess {
294    pub cancelled: bool,
295    pub operation: DestructiveOperation,
296}
297
298impl CancellationSuccess {
299    pub const fn new(operation: DestructiveOperation) -> Self {
300        Self {
301            cancelled: true,
302            operation,
303        }
304    }
305}