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}