Skip to main content

efi_bank/
split.rs

1use reqwest::Method;
2
3use crate::client::Client;
4use crate::error::Error;
5use crate::types::{SplitConfigResponse, SplitLinkResponse, SplitPayload};
6
7impl Client {
8    pub async fn split_create_config(
9        &self,
10        payload: &SplitPayload,
11    ) -> Result<SplitConfigResponse, Error> {
12        self.send_authenticated(Method::POST, "/v2/gn/split/config", Some(payload))
13            .await
14    }
15
16    pub async fn split_update_config(
17        &self,
18        config_id: &str,
19        payload: &SplitPayload,
20    ) -> Result<SplitConfigResponse, Error> {
21        let path = format!("/v2/gn/split/config/{config_id}");
22        self.send_authenticated(Method::PUT, &path, Some(payload))
23            .await
24    }
25
26    pub async fn split_get_config(&self, config_id: &str) -> Result<SplitConfigResponse, Error> {
27        let path = format!("/v2/gn/split/config/{config_id}");
28        self.send_authenticated::<serde_json::Value, SplitConfigResponse>(Method::GET, &path, None)
29            .await
30    }
31
32    pub async fn split_link_cob(
33        &self,
34        txid: &str,
35        split_config_id: &str,
36    ) -> Result<SplitLinkResponse, Error> {
37        let path = format!("/v2/gn/split/cob/{txid}/vinculo/{split_config_id}");
38        self.send_authenticated::<serde_json::Value, SplitLinkResponse>(Method::PUT, &path, None)
39            .await
40    }
41
42    pub async fn split_get_cob(&self, txid: &str) -> Result<SplitConfigResponse, Error> {
43        let path = format!("/v2/gn/split/cob/{txid}");
44        self.send_authenticated::<serde_json::Value, SplitConfigResponse>(Method::GET, &path, None)
45            .await
46    }
47
48    pub async fn split_unlink_cob(&self, txid: &str) -> Result<SplitLinkResponse, Error> {
49        let path = format!("/v2/gn/split/cob/{txid}/vinculo");
50        self.send_authenticated::<serde_json::Value, SplitLinkResponse>(Method::DELETE, &path, None)
51            .await
52    }
53
54    pub async fn split_link_cobv(
55        &self,
56        txid: &str,
57        split_config_id: &str,
58    ) -> Result<SplitLinkResponse, Error> {
59        let path = format!("/v2/gn/split/cobv/{txid}/vinculo/{split_config_id}");
60        self.send_authenticated::<serde_json::Value, SplitLinkResponse>(Method::PUT, &path, None)
61            .await
62    }
63
64    pub async fn split_get_cobv(&self, txid: &str) -> Result<SplitConfigResponse, Error> {
65        let path = format!("/v2/gn/split/cobv/{txid}");
66        self.send_authenticated::<serde_json::Value, SplitConfigResponse>(Method::GET, &path, None)
67            .await
68    }
69
70    pub async fn split_unlink_cobv(&self, txid: &str) -> Result<SplitLinkResponse, Error> {
71        let path = format!("/v2/gn/split/cobv/{txid}/vinculo");
72        self.send_authenticated::<serde_json::Value, SplitLinkResponse>(Method::DELETE, &path, None)
73            .await
74    }
75}