tosspayments/api/
list_settlements.rs

1use reqwest::Method;
2use serde::{Deserialize, Serialize};
3use typed_builder::TypedBuilder;
4
5use crate::data::Settlement;
6use crate::endpoint::Endpoint;
7
8#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)]
9pub enum ListSettlementsDateType {
10  #[serde(rename = "soldDate")]
11  SoldDate,
12  #[serde(rename = "paidOutDate")]
13  PaidOutDate,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize, TypedBuilder)]
17#[serde(rename_all = "camelCase")]
18pub struct ListSettlements {
19  pub start_date: String,
20  pub end_date: String,
21  #[builder(default)]
22  pub date_type: Option<ListSettlementsDateType>,
23  #[builder(default)]
24  pub page: Option<usize>,
25  #[builder(default)]
26  pub size: Option<usize>,
27}
28
29impl Endpoint for ListSettlements {
30  type Query = Self;
31  type Body = ();
32  type Response = Vec<Settlement>;
33
34  fn relative_path(&self) -> String {
35    "/v1/settlements".to_string()
36  }
37
38  fn method(&self) -> Method {
39    Method::GET
40  }
41
42  fn query(&self) -> Option<&Self::Query> {
43    Some(&self)
44  }
45}