1use {
10 crate::models,
11 serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
16pub enum WebhookEvent {
17 #[serde(rename = "transaction.created")]
18 TransactionCreated,
19 #[serde(rename = "transaction.status.updated")]
20 TransactionStatusUpdated,
21 #[serde(rename = "transaction.approval_status.updated")]
22 TransactionApprovalStatusUpdated,
23 #[serde(rename = "transaction.network_records.processing_completed")]
24 TransactionNetworkRecordsProcessingCompleted,
25 #[serde(rename = "external_wallet.asset.added")]
26 ExternalWalletAssetAdded,
27 #[serde(rename = "external_wallet.asset.removed")]
28 ExternalWalletAssetRemoved,
29 #[serde(rename = "internal_wallet.asset.added")]
30 InternalWalletAssetAdded,
31 #[serde(rename = "internal_wallet.asset.removed")]
32 InternalWalletAssetRemoved,
33 #[serde(rename = "contract_wallet.asset.added")]
34 ContractWalletAssetAdded,
35 #[serde(rename = "contract_wallet.asset.removed")]
36 ContractWalletAssetRemoved,
37 #[serde(rename = "vault_account.created")]
38 VaultAccountCreated,
39 #[serde(rename = "vault_account.asset.added")]
40 VaultAccountAssetAdded,
41 #[serde(rename = "vault_account.asset.balance_updated")]
42 VaultAccountAssetBalanceUpdated,
43 #[serde(rename = "vault_account.nft.balance_updated")]
44 VaultAccountNftBalanceUpdated,
45 #[serde(rename = "embedded_wallet.created")]
46 EmbeddedWalletCreated,
47 #[serde(rename = "embedded_wallet.account.created")]
48 EmbeddedWalletAccountCreated,
49 #[serde(rename = "embedded_wallet.device.added")]
50 EmbeddedWalletDeviceAdded,
51 #[serde(rename = "embedded_wallet.asset.added")]
52 EmbeddedWalletAssetAdded,
53 #[serde(rename = "embedded_wallet.status.updated")]
54 EmbeddedWalletStatusUpdated,
55 #[serde(rename = "embedded_wallet.asset.balance_updated")]
56 EmbeddedWalletAssetBalanceUpdated,
57 #[serde(rename = "onchain_data.updated")]
58 OnchainDataUpdated,
59 #[serde(rename = "connection.added")]
60 ConnectionAdded,
61 #[serde(rename = "connection.removed")]
62 ConnectionRemoved,
63 #[serde(rename = "connection.request.waiting_peer_approval")]
64 ConnectionRequestWaitingPeerApproval,
65 #[serde(rename = "connection.request.rejected_by_peer")]
66 ConnectionRequestRejectedByPeer,
67 #[serde(rename = "exchange_account.added")]
68 ExchangeAccountAdded,
69 #[serde(rename = "fiat_account.added")]
70 FiatAccountAdded,
71 #[serde(rename = "ticket.created")]
72 TicketCreated,
73 #[serde(rename = "ticket.submitted")]
74 TicketSubmitted,
75 #[serde(rename = "ticket.expired")]
76 TicketExpired,
77 #[serde(rename = "ticket.canceled")]
78 TicketCanceled,
79 #[serde(rename = "ticket.fulfilled")]
80 TicketFulfilled,
81 #[serde(rename = "ticket.counterparty.added")]
82 TicketCounterpartyAdded,
83 #[serde(rename = "ticket.counterparty_external_id.set")]
84 TicketCounterpartyExternalIdSet,
85 #[serde(rename = "ticket.note.added")]
86 TicketNoteAdded,
87 #[serde(rename = "ticket.expired_in.set")]
88 TicketExpiredInSet,
89 #[serde(rename = "ticket.expired_at.set")]
90 TicketExpiredAtSet,
91 #[serde(rename = "ticket.term.added")]
92 TicketTermAdded,
93 #[serde(rename = "ticket.term.updated")]
94 TicketTermUpdated,
95 #[serde(rename = "ticket.term.deleted")]
96 TicketTermDeleted,
97 #[serde(rename = "ticket.term.funded")]
98 TicketTermFunded,
99 #[serde(rename = "ticket.term.manually_funded")]
100 TicketTermManuallyFunded,
101 #[serde(rename = "ticket.term.funding_canceled")]
102 TicketTermFundingCanceled,
103 #[serde(rename = "ticket.term.funding_failed")]
104 TicketTermFundingFailed,
105 #[serde(rename = "ticket.term.funding_completed")]
106 TicketTermFundingCompleted,
107 #[serde(rename = "ticket.term.transaction_status_changed")]
108 TicketTermTransactionStatusChanged,
109}
110
111impl std::fmt::Display for WebhookEvent {
112 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
113 match self {
114 Self::TransactionCreated => write!(f, "transaction.created"),
115 Self::TransactionStatusUpdated => write!(f, "transaction.status.updated"),
116 Self::TransactionApprovalStatusUpdated => {
117 write!(f, "transaction.approval_status.updated")
118 }
119 Self::TransactionNetworkRecordsProcessingCompleted => {
120 write!(f, "transaction.network_records.processing_completed")
121 }
122 Self::ExternalWalletAssetAdded => write!(f, "external_wallet.asset.added"),
123 Self::ExternalWalletAssetRemoved => write!(f, "external_wallet.asset.removed"),
124 Self::InternalWalletAssetAdded => write!(f, "internal_wallet.asset.added"),
125 Self::InternalWalletAssetRemoved => write!(f, "internal_wallet.asset.removed"),
126 Self::ContractWalletAssetAdded => write!(f, "contract_wallet.asset.added"),
127 Self::ContractWalletAssetRemoved => write!(f, "contract_wallet.asset.removed"),
128 Self::VaultAccountCreated => write!(f, "vault_account.created"),
129 Self::VaultAccountAssetAdded => write!(f, "vault_account.asset.added"),
130 Self::VaultAccountAssetBalanceUpdated => {
131 write!(f, "vault_account.asset.balance_updated")
132 }
133 Self::VaultAccountNftBalanceUpdated => write!(f, "vault_account.nft.balance_updated"),
134 Self::EmbeddedWalletCreated => write!(f, "embedded_wallet.created"),
135 Self::EmbeddedWalletAccountCreated => write!(f, "embedded_wallet.account.created"),
136 Self::EmbeddedWalletDeviceAdded => write!(f, "embedded_wallet.device.added"),
137 Self::EmbeddedWalletAssetAdded => write!(f, "embedded_wallet.asset.added"),
138 Self::EmbeddedWalletStatusUpdated => write!(f, "embedded_wallet.status.updated"),
139 Self::EmbeddedWalletAssetBalanceUpdated => {
140 write!(f, "embedded_wallet.asset.balance_updated")
141 }
142 Self::OnchainDataUpdated => write!(f, "onchain_data.updated"),
143 Self::ConnectionAdded => write!(f, "connection.added"),
144 Self::ConnectionRemoved => write!(f, "connection.removed"),
145 Self::ConnectionRequestWaitingPeerApproval => {
146 write!(f, "connection.request.waiting_peer_approval")
147 }
148 Self::ConnectionRequestRejectedByPeer => {
149 write!(f, "connection.request.rejected_by_peer")
150 }
151 Self::ExchangeAccountAdded => write!(f, "exchange_account.added"),
152 Self::FiatAccountAdded => write!(f, "fiat_account.added"),
153 Self::TicketCreated => write!(f, "ticket.created"),
154 Self::TicketSubmitted => write!(f, "ticket.submitted"),
155 Self::TicketExpired => write!(f, "ticket.expired"),
156 Self::TicketCanceled => write!(f, "ticket.canceled"),
157 Self::TicketFulfilled => write!(f, "ticket.fulfilled"),
158 Self::TicketCounterpartyAdded => write!(f, "ticket.counterparty.added"),
159 Self::TicketCounterpartyExternalIdSet => {
160 write!(f, "ticket.counterparty_external_id.set")
161 }
162 Self::TicketNoteAdded => write!(f, "ticket.note.added"),
163 Self::TicketExpiredInSet => write!(f, "ticket.expired_in.set"),
164 Self::TicketExpiredAtSet => write!(f, "ticket.expired_at.set"),
165 Self::TicketTermAdded => write!(f, "ticket.term.added"),
166 Self::TicketTermUpdated => write!(f, "ticket.term.updated"),
167 Self::TicketTermDeleted => write!(f, "ticket.term.deleted"),
168 Self::TicketTermFunded => write!(f, "ticket.term.funded"),
169 Self::TicketTermManuallyFunded => write!(f, "ticket.term.manually_funded"),
170 Self::TicketTermFundingCanceled => write!(f, "ticket.term.funding_canceled"),
171 Self::TicketTermFundingFailed => write!(f, "ticket.term.funding_failed"),
172 Self::TicketTermFundingCompleted => write!(f, "ticket.term.funding_completed"),
173 Self::TicketTermTransactionStatusChanged => {
174 write!(f, "ticket.term.transaction_status_changed")
175 }
176 }
177 }
178}
179
180impl Default for WebhookEvent {
181 fn default() -> WebhookEvent {
182 Self::TransactionCreated
183 }
184}