1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use resources::{Charge, Invoice, Subscription};
#[derive(Debug, PartialEq, Deserialize, Serialize)]
pub enum EventType {
#[serde(rename = "charge.succeeded")]
ChargeSucceeded,
#[serde(rename = "customer.subscription.created")]
CustomerSubscriptionCreated,
#[serde(rename = "invoice.created")]
InvoiceCreated,
#[serde(rename = "invoice.updated")]
InvoiceUpdated,
}
#[derive(Debug, Deserialize)]
pub struct Event {
#[serde(rename = "type")]
pub event_type: EventType,
pub data: EventData,
}
#[derive(Debug, Deserialize)]
pub struct EventData {
pub object: EventObject,
}
#[derive(Debug, Deserialize)]
#[serde(tag = "object")]
pub enum EventObject {
#[serde(rename = "charge")]
Charge(Charge),
#[serde(rename = "invoice")]
Invoice(Invoice),
#[serde(rename = "subscription")]
Subscription(Subscription),
}