mercury_rust/resources/
cards.rs1use chrono::{DateTime, Utc};
2use crate::resources::List;
3use crate::client::Client;
4
5#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
6#[serde(rename_all="camelCase")]
7pub struct Card {
8 pub created_at: DateTime<Utc>,
9 pub last_four_digits: String,
10 pub name_on_card: String,
11 pub network: CardNetwork,
12 pub status: CardStatus
13}
14
15#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
16#[serde(rename_all="lowercase")]
17pub enum CardNetwork {
18 Visa,
19 Mastercard
20}
21
22#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
23#[serde(rename_all="lowercase")]
24pub enum CardStatus {
25 Active,
26 Frozen,
27 Cancelled,
28 Inactive,
29 Locked
30}
31
32impl Card {
33
34 pub async fn list(client: &Client, id: &str) -> crate::Result<List<Self>> {
35 client.get("/account", vec![id, "cards"], serde_json::Map::new()).await
36 }
37
38}