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}