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}