plaid/request/
transfer_diligence_submit.rs

1use crate::FluentRequest;
2use serde::{Serialize, Deserialize};
3use httpclient::InMemoryResponseExt;
4use crate::model::TransferOriginatorDiligence;
5/**You should use this struct via [`PlaidClient::transfer_diligence_submit`].
6
7On request success, this will return a [`TransferDiligenceSubmitResponse`].*/
8#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct TransferDiligenceSubmitRequest {
10    pub originator_client_id: String,
11    pub originator_diligence: TransferOriginatorDiligence,
12}
13impl FluentRequest<'_, TransferDiligenceSubmitRequest> {}
14impl<'a> ::std::future::IntoFuture
15for FluentRequest<'a, TransferDiligenceSubmitRequest> {
16    type Output = httpclient::InMemoryResult<
17        crate::model::TransferDiligenceSubmitResponse,
18    >;
19    type IntoFuture = ::futures::future::BoxFuture<'a, Self::Output>;
20    fn into_future(self) -> Self::IntoFuture {
21        Box::pin(async move {
22            let url = "/transfer/diligence/submit";
23            let mut r = self.client.client.post(url);
24            r = r
25                .json(
26                    serde_json::json!(
27                        { "originator_client_id" : self.params.originator_client_id }
28                    ),
29                );
30            r = r
31                .json(
32                    serde_json::json!(
33                        { "originator_diligence" : self.params.originator_diligence }
34                    ),
35                );
36            r = self.client.authenticate(r);
37            let res = r.await?;
38            res.json().map_err(Into::into)
39        })
40    }
41}
42impl crate::PlaidClient {
43    /**Submit transfer diligence on behalf of the originator
44
45Use the `/transfer/diligence/submit` endpoint to submit transfer diligence on behalf of the originator (i.e., the end customer).
46
47See endpoint docs at <https://plaid.com/docs/api/products/transfer/platform-payments/#transferdiligencesubmit>.*/
48    pub fn transfer_diligence_submit(
49        &self,
50        originator_client_id: &str,
51        originator_diligence: TransferOriginatorDiligence,
52    ) -> FluentRequest<'_, TransferDiligenceSubmitRequest> {
53        FluentRequest {
54            client: self,
55            params: TransferDiligenceSubmitRequest {
56                originator_client_id: originator_client_id.to_owned(),
57                originator_diligence,
58            },
59        }
60    }
61}