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}