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