Skip to main content

wekan_cli/
command_result.rs

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