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