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