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