mercury_rust/resources/
cards.rs

1use 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}