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