Skip to main content

wekan_cli/
command_result.rs

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