Skip to main content

wekan_cli/
command_result.rs

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