Skip to main content

wekan_cli/
command_result.rs

1mod api;
2mod auth;
3mod boards;
4mod cards;
5mod checklist_items;
6mod checklists;
7mod comments;
8mod lists;
9mod profiles;
10mod swimlanes;
11mod users;
12
13pub use api::{
14    ApiResponseSuccess, RawApiResponseData, RawResponseBody, RawResponseHeader, RawValueEncoding,
15};
16pub use auth::{
17    AuthStatusEmail, AuthStatusSuccess, AuthStatusUser, AuthSuccess, LogoutScope, LogoutSuccess,
18};
19pub use boards::{
20    BoardCountSuccess, BoardCreateSuccess, BoardDeleteSuccess, BoardDetail, BoardDetailDomain,
21    BoardDetailLabel, BoardDetailMember, BoardDetailOrganization, BoardDetailTeam,
22    BoardDetailWatcher, BoardListScope, BoardListSuccess, BoardRenameSuccess, BoardSummary,
23    UserBoardSummary,
24};
25pub use cards::{
26    CardArchiveSuccess, CardCollectionSuccess, CardCreateSuccess, CardDeleteMode,
27    CardDeleteSuccess, CardDetail, CardDetailCustomField, CardDetailCustomFieldValue,
28    CardDetailDependency, CardDetailLocation, CardDetailPoker, CardDetailSticker,
29    CardDetailStickerHighlight, CardDetailVote, CardRestoreSuccess, CardSubmittedField,
30    CardSummary, CardUpdateSuccess,
31};
32pub use checklist_items::{
33    ChecklistItemCreateSuccess, ChecklistItemDeleteMode, ChecklistItemDeleteSuccess,
34    ChecklistItemDetail, ChecklistItemSubmittedField, ChecklistItemUpdateSuccess,
35};
36pub use checklists::{
37    ChecklistCollectionSuccess, ChecklistCreateSuccess, ChecklistDeleteMode,
38    ChecklistDeleteSuccess, ChecklistDetail, ChecklistItemSummary, ChecklistSummary,
39};
40pub use comments::{
41    CommentCollectionSuccess, CommentCreateSuccess, CommentDeleteMode, CommentDeleteSuccess,
42    CommentDetail, CommentSummary,
43};
44pub use lists::{
45    ListCollectionSuccess, ListCreateSuccess, ListDeleteMode, ListDeleteSuccess, ListDetail,
46    ListSummary, ListUpdateSuccess, ListUpdatedField, ListWipLimitDetail,
47};
48pub use profiles::{ProfileItem, ProfileListSuccess, ProfileRemoveSuccess};
49pub use swimlanes::{
50    SwimlaneCollectionSuccess, SwimlaneCreateSuccess, SwimlaneDeleteMode, SwimlaneDeleteSuccess,
51    SwimlaneDetail, SwimlaneSummary, SwimlaneUpdateSuccess, SwimlaneUpdatedField,
52};
53pub use users::{
54    UserBoardMembership, UserBoardsSuccess, UserCard, UserCardsSuccess, UserCreateSuccess,
55    UserCreateWarning, UserDeleteSuccess, UserDetail, UserEmail, UserListSuccess, UserLoginAction,
56    UserLoginChangeSuccess, UserOrganization, UserOwnershipSuccess, UserProfileDetail,
57    UserProfileNotificationDetail, UserProfileStarredPageDetail, UserSessionData, UserSummary,
58    UserTeam, UserWorkspaceNodeDetail,
59};
60
61use serde::Serialize;
62
63#[derive(Debug, Eq, PartialEq)]
64pub enum CommandSuccess {
65    ApiResponse(ApiResponseSuccess),
66    Cancelled(CancellationSuccess),
67    Registration(AuthSuccess),
68    Login(AuthSuccess),
69    Logout(LogoutSuccess),
70    AuthStatus(AuthStatusSuccess),
71    UserCurrent(UserDetail),
72    UserList(UserListSuccess),
73    UserShown(UserDetail),
74    UserUpdated(UserDetail),
75    UserCards(UserCardsSuccess),
76    UserCreated(UserCreateSuccess),
77    UserBoards(UserBoardsSuccess),
78    UserOwnershipTaken(UserOwnershipSuccess),
79    UserLoginChanged(UserLoginChangeSuccess),
80    UserDeleted(UserDeleteSuccess),
81    BoardList(BoardListSuccess),
82    BoardCount(BoardCountSuccess),
83    BoardShown(Box<BoardDetail>),
84    BoardCreated(BoardCreateSuccess),
85    BoardRenamed(BoardRenameSuccess),
86    BoardDeleted(BoardDeleteSuccess),
87    ListCollection(ListCollectionSuccess),
88    ListShown(ListDetail),
89    ListCreated(ListCreateSuccess),
90    ListUpdated(ListUpdateSuccess),
91    ListDeleted(ListDeleteSuccess),
92    CardCollection(CardCollectionSuccess),
93    CardShown(Box<CardDetail>),
94    CardCreated(CardCreateSuccess),
95    CardUpdated(CardUpdateSuccess),
96    CardArchived(CardArchiveSuccess),
97    CardRestored(CardRestoreSuccess),
98    CardDeleted(CardDeleteSuccess),
99    ChecklistCollection(ChecklistCollectionSuccess),
100    ChecklistShown(ChecklistDetail),
101    ChecklistCreated(ChecklistCreateSuccess),
102    ChecklistDeleted(ChecklistDeleteSuccess),
103    ChecklistItemShown(ChecklistItemDetail),
104    ChecklistItemCreated(ChecklistItemCreateSuccess),
105    ChecklistItemUpdated(ChecklistItemUpdateSuccess),
106    ChecklistItemDeleted(ChecklistItemDeleteSuccess),
107    CommentCollection(CommentCollectionSuccess),
108    CommentShown(CommentDetail),
109    CommentCreated(CommentCreateSuccess),
110    CommentDeleted(CommentDeleteSuccess),
111    SwimlaneCollection(SwimlaneCollectionSuccess),
112    SwimlaneShown(SwimlaneDetail),
113    SwimlaneCreated(SwimlaneCreateSuccess),
114    SwimlaneUpdated(SwimlaneUpdateSuccess),
115    SwimlaneDeleted(SwimlaneDeleteSuccess),
116    ProfileAdded(ProfileItem),
117    ProfileList(ProfileListSuccess),
118    ProfileShown(ProfileItem),
119    ProfileUsed(ProfileItem),
120    ProfileUpdated(ProfileItem),
121    ProfileRemoved(ProfileRemoveSuccess),
122}
123
124#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
125#[serde(rename_all = "snake_case")]
126pub enum DestructiveOperation {
127    ApiRequest,
128    AuthLogout,
129    ProfileRemove,
130    UserTakeOwnership,
131    UserDisableLogin,
132    UserDelete,
133    BoardDelete,
134    ListDelete,
135    CardDelete,
136    ChecklistDelete,
137    ChecklistItemDelete,
138    CommentDelete,
139    SwimlaneDelete,
140}
141
142impl DestructiveOperation {
143    pub const fn as_command(self) -> &'static str {
144        match self {
145            Self::ApiRequest => "api request",
146            Self::AuthLogout => "auth logout",
147            Self::ProfileRemove => "profile remove",
148            Self::UserTakeOwnership => "user take-ownership",
149            Self::UserDisableLogin => "user disable-login",
150            Self::UserDelete => "user delete",
151            Self::BoardDelete => "board delete",
152            Self::ListDelete => "list delete",
153            Self::CardDelete => "card delete",
154            Self::ChecklistDelete => "checklist delete",
155            Self::ChecklistItemDelete => "checklist-item delete",
156            Self::CommentDelete => "comment delete",
157            Self::SwimlaneDelete => "swimlane delete",
158        }
159    }
160}
161
162#[derive(Debug, Eq, PartialEq, Serialize)]
163pub struct CancellationSuccess {
164    pub cancelled: bool,
165    pub operation: DestructiveOperation,
166}
167
168impl CancellationSuccess {
169    pub const fn new(operation: DestructiveOperation) -> Self {
170        Self {
171            cancelled: true,
172            operation,
173        }
174    }
175}