use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum WebhookEvent {
#[serde(rename = "transaction.created")]
TransactionCreated,
#[serde(rename = "transaction.status.updated")]
TransactionStatusUpdated,
#[serde(rename = "transaction.approval_status.updated")]
TransactionApprovalStatusUpdated,
#[serde(rename = "transaction.network_records.processing_completed")]
TransactionNetworkRecordsProcessingCompleted,
#[serde(rename = "external_wallet.asset.added")]
ExternalWalletAssetAdded,
#[serde(rename = "external_wallet.asset.removed")]
ExternalWalletAssetRemoved,
#[serde(rename = "internal_wallet.asset.added")]
InternalWalletAssetAdded,
#[serde(rename = "internal_wallet.asset.removed")]
InternalWalletAssetRemoved,
#[serde(rename = "contract_wallet.asset.added")]
ContractWalletAssetAdded,
#[serde(rename = "contract_wallet.asset.removed")]
ContractWalletAssetRemoved,
#[serde(rename = "vault_account.created")]
VaultAccountCreated,
#[serde(rename = "vault_account.asset.added")]
VaultAccountAssetAdded,
#[serde(rename = "vault_account.asset.balance_updated")]
VaultAccountAssetBalanceUpdated,
#[serde(rename = "vault_account.nft.balance_updated")]
VaultAccountNftBalanceUpdated,
#[serde(rename = "embedded_wallet.created")]
EmbeddedWalletCreated,
#[serde(rename = "embedded_wallet.account.created")]
EmbeddedWalletAccountCreated,
#[serde(rename = "embedded_wallet.device.added")]
EmbeddedWalletDeviceAdded,
#[serde(rename = "embedded_wallet.asset.added")]
EmbeddedWalletAssetAdded,
#[serde(rename = "embedded_wallet.status.updated")]
EmbeddedWalletStatusUpdated,
#[serde(rename = "embedded_wallet.asset.balance_updated")]
EmbeddedWalletAssetBalanceUpdated,
#[serde(rename = "onchain_data.updated")]
OnchainDataUpdated,
#[serde(rename = "connection.added")]
ConnectionAdded,
#[serde(rename = "connection.removed")]
ConnectionRemoved,
#[serde(rename = "connection.request.waiting_peer_approval")]
ConnectionRequestWaitingPeerApproval,
#[serde(rename = "connection.request.rejected_by_peer")]
ConnectionRequestRejectedByPeer,
#[serde(rename = "exchange_account.added")]
ExchangeAccountAdded,
#[serde(rename = "fiat_account.added")]
FiatAccountAdded,
#[serde(rename = "ticket.created")]
TicketCreated,
#[serde(rename = "ticket.submitted")]
TicketSubmitted,
#[serde(rename = "ticket.expired")]
TicketExpired,
#[serde(rename = "ticket.canceled")]
TicketCanceled,
#[serde(rename = "ticket.fulfilled")]
TicketFulfilled,
#[serde(rename = "ticket.counterparty.added")]
TicketCounterpartyAdded,
#[serde(rename = "ticket.counterparty_external_id.set")]
TicketCounterpartyExternalIdSet,
#[serde(rename = "ticket.note.added")]
TicketNoteAdded,
#[serde(rename = "ticket.expired_in.set")]
TicketExpiredInSet,
#[serde(rename = "ticket.expired_at.set")]
TicketExpiredAtSet,
#[serde(rename = "ticket.term.added")]
TicketTermAdded,
#[serde(rename = "ticket.term.updated")]
TicketTermUpdated,
#[serde(rename = "ticket.term.deleted")]
TicketTermDeleted,
#[serde(rename = "ticket.term.funded")]
TicketTermFunded,
#[serde(rename = "ticket.term.manually_funded")]
TicketTermManuallyFunded,
#[serde(rename = "ticket.term.funding_canceled")]
TicketTermFundingCanceled,
#[serde(rename = "ticket.term.funding_failed")]
TicketTermFundingFailed,
#[serde(rename = "ticket.term.funding_completed")]
TicketTermFundingCompleted,
#[serde(rename = "ticket.term.transaction_status_changed")]
TicketTermTransactionStatusChanged,
}
impl std::fmt::Display for WebhookEvent {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::TransactionCreated => write!(f, "transaction.created"),
Self::TransactionStatusUpdated => write!(f, "transaction.status.updated"),
Self::TransactionApprovalStatusUpdated => {
write!(f, "transaction.approval_status.updated")
}
Self::TransactionNetworkRecordsProcessingCompleted => {
write!(f, "transaction.network_records.processing_completed")
}
Self::ExternalWalletAssetAdded => write!(f, "external_wallet.asset.added"),
Self::ExternalWalletAssetRemoved => write!(f, "external_wallet.asset.removed"),
Self::InternalWalletAssetAdded => write!(f, "internal_wallet.asset.added"),
Self::InternalWalletAssetRemoved => write!(f, "internal_wallet.asset.removed"),
Self::ContractWalletAssetAdded => write!(f, "contract_wallet.asset.added"),
Self::ContractWalletAssetRemoved => write!(f, "contract_wallet.asset.removed"),
Self::VaultAccountCreated => write!(f, "vault_account.created"),
Self::VaultAccountAssetAdded => write!(f, "vault_account.asset.added"),
Self::VaultAccountAssetBalanceUpdated => {
write!(f, "vault_account.asset.balance_updated")
}
Self::VaultAccountNftBalanceUpdated => write!(f, "vault_account.nft.balance_updated"),
Self::EmbeddedWalletCreated => write!(f, "embedded_wallet.created"),
Self::EmbeddedWalletAccountCreated => write!(f, "embedded_wallet.account.created"),
Self::EmbeddedWalletDeviceAdded => write!(f, "embedded_wallet.device.added"),
Self::EmbeddedWalletAssetAdded => write!(f, "embedded_wallet.asset.added"),
Self::EmbeddedWalletStatusUpdated => write!(f, "embedded_wallet.status.updated"),
Self::EmbeddedWalletAssetBalanceUpdated => {
write!(f, "embedded_wallet.asset.balance_updated")
}
Self::OnchainDataUpdated => write!(f, "onchain_data.updated"),
Self::ConnectionAdded => write!(f, "connection.added"),
Self::ConnectionRemoved => write!(f, "connection.removed"),
Self::ConnectionRequestWaitingPeerApproval => {
write!(f, "connection.request.waiting_peer_approval")
}
Self::ConnectionRequestRejectedByPeer => {
write!(f, "connection.request.rejected_by_peer")
}
Self::ExchangeAccountAdded => write!(f, "exchange_account.added"),
Self::FiatAccountAdded => write!(f, "fiat_account.added"),
Self::TicketCreated => write!(f, "ticket.created"),
Self::TicketSubmitted => write!(f, "ticket.submitted"),
Self::TicketExpired => write!(f, "ticket.expired"),
Self::TicketCanceled => write!(f, "ticket.canceled"),
Self::TicketFulfilled => write!(f, "ticket.fulfilled"),
Self::TicketCounterpartyAdded => write!(f, "ticket.counterparty.added"),
Self::TicketCounterpartyExternalIdSet => {
write!(f, "ticket.counterparty_external_id.set")
}
Self::TicketNoteAdded => write!(f, "ticket.note.added"),
Self::TicketExpiredInSet => write!(f, "ticket.expired_in.set"),
Self::TicketExpiredAtSet => write!(f, "ticket.expired_at.set"),
Self::TicketTermAdded => write!(f, "ticket.term.added"),
Self::TicketTermUpdated => write!(f, "ticket.term.updated"),
Self::TicketTermDeleted => write!(f, "ticket.term.deleted"),
Self::TicketTermFunded => write!(f, "ticket.term.funded"),
Self::TicketTermManuallyFunded => write!(f, "ticket.term.manually_funded"),
Self::TicketTermFundingCanceled => write!(f, "ticket.term.funding_canceled"),
Self::TicketTermFundingFailed => write!(f, "ticket.term.funding_failed"),
Self::TicketTermFundingCompleted => write!(f, "ticket.term.funding_completed"),
Self::TicketTermTransactionStatusChanged => {
write!(f, "ticket.term.transaction_status_changed")
}
}
}
}
impl Default for WebhookEvent {
fn default() -> WebhookEvent {
Self::TransactionCreated
}
}