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}