#[allow(unused_imports)]
use crate::generated::*;
#[allow(unused_imports)]
use crate::{
BalanceSnapshot, Client, CountrySpecifications, CreateFileRequest, FileDownload,
FulfillUploadRequest, OpenFileLinkRequest, RequestOptions, RequestSpec, Result,
};
#[derive(Clone)]
pub struct Payouts {
client: Client,
}
impl Payouts {
pub(crate) fn new(client: Client) -> Self {
Self { client }
}
pub async fn schedule(&self, request: &SchedulePayoutRequest) -> Result<Payout> {
self.schedule_with_options(request, RequestOptions::default())
.await
}
pub async fn schedule_with_options(
&self,
request: &SchedulePayoutRequest,
options: RequestOptions,
) -> Result<Payout> {
self.client
.request_resource(
RequestSpec {
method: "POST",
path: "/payouts/schedule",
operation: "payouts.schedule",
field: Some("payout"),
authenticated: true,
},
Some(request),
options,
)
.await
}
pub async fn lookup(&self, request: &LookupPayoutRequest) -> Result<Payout> {
self.lookup_with_options(request, RequestOptions::default())
.await
}
pub async fn lookup_with_options(
&self,
request: &LookupPayoutRequest,
options: RequestOptions,
) -> Result<Payout> {
self.client
.request_resource(
RequestSpec {
method: "POST",
path: "/payouts/lookup",
operation: "payouts.lookup",
field: Some("payout"),
authenticated: true,
},
Some(request),
options,
)
.await
}
pub async fn set_destinations(
&self,
request: &SetPayoutDestinationsRequest,
) -> Result<PayoutSettingsMutation> {
self.set_destinations_with_options(request, RequestOptions::default())
.await
}
pub async fn set_destinations_with_options(
&self,
request: &SetPayoutDestinationsRequest,
options: RequestOptions,
) -> Result<PayoutSettingsMutation> {
self.client
.request_resource(
RequestSpec {
method: "POST",
path: "/payouts/set_destinations",
operation: "payouts.set_destinations",
field: Some("settings"),
authenticated: true,
},
Some(request),
options,
)
.await
}
pub async fn settings(&self) -> Result<PayoutSettingsLookup> {
self.settings_with_options(RequestOptions::default()).await
}
pub async fn settings_with_options(
&self,
options: RequestOptions,
) -> Result<PayoutSettingsLookup> {
let body = serde_json::json!({});
self.client
.request_resource(
RequestSpec {
method: "POST",
path: "/payouts/settings",
operation: "payouts.settings",
field: Some("settings"),
authenticated: true,
},
Some(&body),
options,
)
.await
}
pub async fn disable(&self) -> Result<PayoutSettingsMutation> {
self.disable_with_options(RequestOptions::default()).await
}
pub async fn disable_with_options(
&self,
options: RequestOptions,
) -> Result<PayoutSettingsMutation> {
let body = serde_json::json!({});
self.client
.request_resource(
RequestSpec {
method: "POST",
path: "/payouts/disable",
operation: "payouts.disable",
field: Some("settings"),
authenticated: true,
},
Some(&body),
options,
)
.await
}
pub async fn enable(&self) -> Result<PayoutSettingsMutation> {
self.enable_with_options(RequestOptions::default()).await
}
pub async fn enable_with_options(
&self,
options: RequestOptions,
) -> Result<PayoutSettingsMutation> {
let body = serde_json::json!({});
self.client
.request_resource(
RequestSpec {
method: "POST",
path: "/payouts/enable",
operation: "payouts.enable",
field: Some("settings"),
authenticated: true,
},
Some(&body),
options,
)
.await
}
pub async fn page(&self, request: &PagePayoutsRequest) -> Result<PayoutPage> {
self.page_with_options(request, RequestOptions::default())
.await
}
pub async fn page_with_options(
&self,
request: &PagePayoutsRequest,
options: RequestOptions,
) -> Result<PayoutPage> {
self.client
.request_resource(
RequestSpec {
method: "POST",
path: "/payouts/page",
operation: "payouts.page",
field: Some("page"),
authenticated: true,
},
Some(request),
options,
)
.await
}
pub async fn search(&self, request: &ResourceSearchRequest) -> Result<ResourceSearchPage> {
self.search_with_options(request, RequestOptions::default())
.await
}
pub async fn search_with_options(
&self,
request: &ResourceSearchRequest,
options: RequestOptions,
) -> Result<ResourceSearchPage> {
self.client
.request_resource(
RequestSpec {
method: "POST",
path: "/payouts/search",
operation: "payouts.search",
field: Some("search"),
authenticated: true,
},
Some(request),
options,
)
.await
}
pub async fn cancel(&self, request: &CancelPayoutRequest) -> Result<Payout> {
self.cancel_with_options(request, RequestOptions::default())
.await
}
pub async fn cancel_with_options(
&self,
request: &CancelPayoutRequest,
options: RequestOptions,
) -> Result<Payout> {
self.client
.request_resource(
RequestSpec {
method: "POST",
path: "/payouts/cancel",
operation: "payouts.cancel",
field: Some("payout"),
authenticated: true,
},
Some(request),
options,
)
.await
}
}