use {
super::{Error, configuration},
crate::{
apis::{ContentType, ResponseContent},
models,
},
async_trait::async_trait,
reqwest,
serde::{Deserialize, Serialize, de::Error as _},
std::sync::Arc,
};
#[async_trait]
pub trait SmartTransfersApi: Send + Sync {
async fn approve_dv_p_ticket_term(
&self,
params: ApproveDvPTicketTermParams,
) -> Result<models::SmartTransferTicketTermResponse, Error<ApproveDvPTicketTermError>>;
async fn cancel_ticket(
&self,
params: CancelTicketParams,
) -> Result<models::SmartTransferTicketResponse, Error<CancelTicketError>>;
async fn create_ticket(
&self,
params: CreateTicketParams,
) -> Result<models::SmartTransferTicketResponse, Error<CreateTicketError>>;
async fn create_ticket_term(
&self,
params: CreateTicketTermParams,
) -> Result<models::SmartTransferTicketTermResponse, Error<CreateTicketTermError>>;
async fn find_ticket_by_id(
&self,
params: FindTicketByIdParams,
) -> Result<models::SmartTransferTicketResponse, Error<FindTicketByIdError>>;
async fn find_ticket_term_by_id(
&self,
params: FindTicketTermByIdParams,
) -> Result<models::SmartTransferTicketTermResponse, Error<FindTicketTermByIdError>>;
async fn fulfill_ticket(
&self,
params: FulfillTicketParams,
) -> Result<models::SmartTransferTicketResponse, Error<FulfillTicketError>>;
async fn fund_dvp_ticket(
&self,
params: FundDvpTicketParams,
) -> Result<models::SmartTransferTicketResponse, Error<FundDvpTicketError>>;
async fn fund_ticket_term(
&self,
params: FundTicketTermParams,
) -> Result<models::SmartTransferTicketTermResponse, Error<FundTicketTermError>>;
async fn get_smart_transfer_statistic(
&self,
) -> Result<models::SmartTransferStatistic, Error<GetSmartTransferStatisticError>>;
async fn get_smart_transfer_user_groups(
&self,
) -> Result<models::SmartTransferUserGroupsResponse, Error<GetSmartTransferUserGroupsError>>;
async fn manually_fund_ticket_term(
&self,
params: ManuallyFundTicketTermParams,
) -> Result<models::SmartTransferTicketTermResponse, Error<ManuallyFundTicketTermError>>;
async fn remove_ticket_term(
&self,
params: RemoveTicketTermParams,
) -> Result<(), Error<RemoveTicketTermError>>;
async fn search_tickets(
&self,
params: SearchTicketsParams,
) -> Result<models::SmartTransferTicketFilteredResponse, Error<SearchTicketsError>>;
async fn set_external_ref_id(
&self,
params: SetExternalRefIdParams,
) -> Result<models::SmartTransferTicketResponse, Error<SetExternalRefIdError>>;
async fn set_ticket_expiration(
&self,
params: SetTicketExpirationParams,
) -> Result<models::SmartTransferTicketResponse, Error<SetTicketExpirationError>>;
async fn set_user_groups(
&self,
params: SetUserGroupsParams,
) -> Result<models::SmartTransferUserGroupsResponse, Error<SetUserGroupsError>>;
async fn submit_ticket(
&self,
params: SubmitTicketParams,
) -> Result<models::SmartTransferTicketResponse, Error<SubmitTicketError>>;
async fn update_ticket_term(
&self,
params: UpdateTicketTermParams,
) -> Result<models::SmartTransferTicketTermResponse, Error<UpdateTicketTermError>>;
}
pub struct SmartTransfersApiClient {
configuration: Arc<configuration::Configuration>,
}
impl SmartTransfersApiClient {
pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
Self { configuration }
}
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct ApproveDvPTicketTermParams {
pub ticket_id: String,
pub term_id: String,
pub smart_transfer_approve_term: models::SmartTransferApproveTerm,
pub idempotency_key: Option<String>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct CancelTicketParams {
pub ticket_id: String,
pub idempotency_key: Option<String>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct CreateTicketParams {
pub smart_transfer_create_ticket: models::SmartTransferCreateTicket,
pub idempotency_key: Option<String>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct CreateTicketTermParams {
pub ticket_id: String,
pub smart_transfer_create_ticket_term: models::SmartTransferCreateTicketTerm,
pub idempotency_key: Option<String>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct FindTicketByIdParams {
pub ticket_id: String,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct FindTicketTermByIdParams {
pub ticket_id: String,
pub term_id: String,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct FulfillTicketParams {
pub ticket_id: String,
pub idempotency_key: Option<String>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct FundDvpTicketParams {
pub ticket_id: String,
pub smart_transfer_fund_dvp_ticket: models::SmartTransferFundDvpTicket,
pub idempotency_key: Option<String>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct FundTicketTermParams {
pub ticket_id: String,
pub term_id: String,
pub smart_transfer_fund_term: models::SmartTransferFundTerm,
pub idempotency_key: Option<String>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct ManuallyFundTicketTermParams {
pub ticket_id: String,
pub term_id: String,
pub smart_transfer_manually_fund_term: models::SmartTransferManuallyFundTerm,
pub idempotency_key: Option<String>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct RemoveTicketTermParams {
pub ticket_id: String,
pub term_id: String,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct SearchTicketsParams {
pub q: Option<String>,
pub statuses: Option<Vec<String>>,
pub network_id: Option<String>,
pub created_by_me: Option<bool>,
pub expires_after: Option<String>,
pub expires_before: Option<String>,
pub r#type: Option<String>,
pub external_ref_id: Option<String>,
pub after: Option<String>,
pub limit: Option<f64>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct SetExternalRefIdParams {
pub ticket_id: String,
pub smart_transfer_set_ticket_external_id: models::SmartTransferSetTicketExternalId,
pub idempotency_key: Option<String>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct SetTicketExpirationParams {
pub ticket_id: String,
pub smart_transfer_set_ticket_expiration: models::SmartTransferSetTicketExpiration,
pub idempotency_key: Option<String>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct SetUserGroupsParams {
pub smart_transfer_set_user_groups: models::SmartTransferSetUserGroups,
pub idempotency_key: Option<String>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct SubmitTicketParams {
pub ticket_id: String,
pub smart_transfer_submit_ticket: models::SmartTransferSubmitTicket,
pub idempotency_key: Option<String>,
}
#[derive(Clone, Debug)]
#[cfg_attr(feature = "bon", derive(::bon::Builder))]
pub struct UpdateTicketTermParams {
pub ticket_id: String,
pub term_id: String,
pub smart_transfer_update_ticket_term: models::SmartTransferUpdateTicketTerm,
pub idempotency_key: Option<String>,
}
#[async_trait]
impl SmartTransfersApi for SmartTransfersApiClient {
async fn approve_dv_p_ticket_term(
&self,
params: ApproveDvPTicketTermParams,
) -> Result<models::SmartTransferTicketTermResponse, Error<ApproveDvPTicketTermError>> {
let ApproveDvPTicketTermParams {
ticket_id,
term_id,
smart_transfer_approve_term,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart_transfers/{ticketId}/terms/{termId}/dvp/approve",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id),
termId = crate::apis::urlencode(term_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
local_var_req_builder = local_var_req_builder.json(&smart_transfer_approve_term);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketTermResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketTermResponse`"
))));
}
}
} else {
let local_var_entity: Option<ApproveDvPTicketTermError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn cancel_ticket(
&self,
params: CancelTicketParams,
) -> Result<models::SmartTransferTicketResponse, Error<CancelTicketError>> {
let CancelTicketParams {
ticket_id,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/{ticketId}/cancel",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketResponse`"
))));
}
}
} else {
let local_var_entity: Option<CancelTicketError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn create_ticket(
&self,
params: CreateTicketParams,
) -> Result<models::SmartTransferTicketResponse, Error<CreateTicketError>> {
let CreateTicketParams {
smart_transfer_create_ticket,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!("{}/smart-transfers", local_var_configuration.base_path);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
local_var_req_builder = local_var_req_builder.json(&smart_transfer_create_ticket);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketResponse`"
))));
}
}
} else {
let local_var_entity: Option<CreateTicketError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn create_ticket_term(
&self,
params: CreateTicketTermParams,
) -> Result<models::SmartTransferTicketTermResponse, Error<CreateTicketTermError>> {
let CreateTicketTermParams {
ticket_id,
smart_transfer_create_ticket_term,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/{ticketId}/terms",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
local_var_req_builder = local_var_req_builder.json(&smart_transfer_create_ticket_term);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketTermResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketTermResponse`"
))));
}
}
} else {
let local_var_entity: Option<CreateTicketTermError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn find_ticket_by_id(
&self,
params: FindTicketByIdParams,
) -> Result<models::SmartTransferTicketResponse, Error<FindTicketByIdError>> {
let FindTicketByIdParams { ticket_id } = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/{ticketId}",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketResponse`"
))));
}
}
} else {
let local_var_entity: Option<FindTicketByIdError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn find_ticket_term_by_id(
&self,
params: FindTicketTermByIdParams,
) -> Result<models::SmartTransferTicketTermResponse, Error<FindTicketTermByIdError>> {
let FindTicketTermByIdParams { ticket_id, term_id } = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/{ticketId}/terms/{termId}",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id),
termId = crate::apis::urlencode(term_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketTermResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketTermResponse`"
))));
}
}
} else {
let local_var_entity: Option<FindTicketTermByIdError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn fulfill_ticket(
&self,
params: FulfillTicketParams,
) -> Result<models::SmartTransferTicketResponse, Error<FulfillTicketError>> {
let FulfillTicketParams {
ticket_id,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/{ticketId}/fulfill",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketResponse`"
))));
}
}
} else {
let local_var_entity: Option<FulfillTicketError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn fund_dvp_ticket(
&self,
params: FundDvpTicketParams,
) -> Result<models::SmartTransferTicketResponse, Error<FundDvpTicketError>> {
let FundDvpTicketParams {
ticket_id,
smart_transfer_fund_dvp_ticket,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart_transfers/{ticketId}/dvp/fund",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
local_var_req_builder = local_var_req_builder.json(&smart_transfer_fund_dvp_ticket);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketResponse`"
))));
}
}
} else {
let local_var_entity: Option<FundDvpTicketError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn fund_ticket_term(
&self,
params: FundTicketTermParams,
) -> Result<models::SmartTransferTicketTermResponse, Error<FundTicketTermError>> {
let FundTicketTermParams {
ticket_id,
term_id,
smart_transfer_fund_term,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/{ticketId}/terms/{termId}/fund",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id),
termId = crate::apis::urlencode(term_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
local_var_req_builder = local_var_req_builder.json(&smart_transfer_fund_term);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketTermResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketTermResponse`"
))));
}
}
} else {
let local_var_entity: Option<FundTicketTermError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn get_smart_transfer_statistic(
&self,
) -> Result<models::SmartTransferStatistic, Error<GetSmartTransferStatisticError>> {
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart_transfers/statistic",
local_var_configuration.base_path
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferStatistic`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferStatistic`"
))));
}
}
} else {
let local_var_entity: Option<GetSmartTransferStatisticError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn get_smart_transfer_user_groups(
&self,
) -> Result<models::SmartTransferUserGroupsResponse, Error<GetSmartTransferUserGroupsError>>
{
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/settings/user-groups",
local_var_configuration.base_path
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferUserGroupsResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferUserGroupsResponse`"
))));
}
}
} else {
let local_var_entity: Option<GetSmartTransferUserGroupsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn manually_fund_ticket_term(
&self,
params: ManuallyFundTicketTermParams,
) -> Result<models::SmartTransferTicketTermResponse, Error<ManuallyFundTicketTermError>> {
let ManuallyFundTicketTermParams {
ticket_id,
term_id,
smart_transfer_manually_fund_term,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/{ticketId}/terms/{termId}/manually-fund",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id),
termId = crate::apis::urlencode(term_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
local_var_req_builder = local_var_req_builder.json(&smart_transfer_manually_fund_term);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketTermResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketTermResponse`"
))));
}
}
} else {
let local_var_entity: Option<ManuallyFundTicketTermError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn remove_ticket_term(
&self,
params: RemoveTicketTermParams,
) -> Result<(), Error<RemoveTicketTermError>> {
let RemoveTicketTermParams { ticket_id, term_id } = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/{ticketId}/terms/{termId}",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id),
termId = crate::apis::urlencode(term_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
Ok(())
} else {
let local_var_entity: Option<RemoveTicketTermError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn search_tickets(
&self,
params: SearchTicketsParams,
) -> Result<models::SmartTransferTicketFilteredResponse, Error<SearchTicketsError>> {
let SearchTicketsParams {
q,
statuses,
network_id,
created_by_me,
expires_after,
expires_before,
r#type,
external_ref_id,
after,
limit,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!("{}/smart-transfers", local_var_configuration.base_path);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref param_value) = q {
local_var_req_builder = local_var_req_builder.query(&[("q", ¶m_value.to_string())]);
}
if let Some(ref param_value) = statuses {
local_var_req_builder = match "multi" {
"multi" => local_var_req_builder.query(
¶m_value
.into_iter()
.map(|p| ("statuses".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"statuses",
¶m_value
.into_iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]),
};
}
if let Some(ref param_value) = network_id {
local_var_req_builder =
local_var_req_builder.query(&[("networkId", ¶m_value.to_string())]);
}
if let Some(ref param_value) = created_by_me {
local_var_req_builder =
local_var_req_builder.query(&[("createdByMe", ¶m_value.to_string())]);
}
if let Some(ref param_value) = expires_after {
local_var_req_builder =
local_var_req_builder.query(&[("expiresAfter", ¶m_value.to_string())]);
}
if let Some(ref param_value) = expires_before {
local_var_req_builder =
local_var_req_builder.query(&[("expiresBefore", ¶m_value.to_string())]);
}
if let Some(ref param_value) = r#type {
local_var_req_builder =
local_var_req_builder.query(&[("type", ¶m_value.to_string())]);
}
if let Some(ref param_value) = external_ref_id {
local_var_req_builder =
local_var_req_builder.query(&[("externalRefId", ¶m_value.to_string())]);
}
if let Some(ref param_value) = after {
local_var_req_builder =
local_var_req_builder.query(&[("after", ¶m_value.to_string())]);
}
if let Some(ref param_value) = limit {
local_var_req_builder =
local_var_req_builder.query(&[("limit", ¶m_value.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketFilteredResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketFilteredResponse`"
))));
}
}
} else {
let local_var_entity: Option<SearchTicketsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn set_external_ref_id(
&self,
params: SetExternalRefIdParams,
) -> Result<models::SmartTransferTicketResponse, Error<SetExternalRefIdError>> {
let SetExternalRefIdParams {
ticket_id,
smart_transfer_set_ticket_external_id,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/{ticketId}/external-id",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
local_var_req_builder = local_var_req_builder.json(&smart_transfer_set_ticket_external_id);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketResponse`"
))));
}
}
} else {
let local_var_entity: Option<SetExternalRefIdError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn set_ticket_expiration(
&self,
params: SetTicketExpirationParams,
) -> Result<models::SmartTransferTicketResponse, Error<SetTicketExpirationError>> {
let SetTicketExpirationParams {
ticket_id,
smart_transfer_set_ticket_expiration,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/{ticketId}/expires-in",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
local_var_req_builder = local_var_req_builder.json(&smart_transfer_set_ticket_expiration);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketResponse`"
))));
}
}
} else {
let local_var_entity: Option<SetTicketExpirationError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn set_user_groups(
&self,
params: SetUserGroupsParams,
) -> Result<models::SmartTransferUserGroupsResponse, Error<SetUserGroupsError>> {
let SetUserGroupsParams {
smart_transfer_set_user_groups,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/settings/user-groups",
local_var_configuration.base_path
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
local_var_req_builder = local_var_req_builder.json(&smart_transfer_set_user_groups);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferUserGroupsResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferUserGroupsResponse`"
))));
}
}
} else {
let local_var_entity: Option<SetUserGroupsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn submit_ticket(
&self,
params: SubmitTicketParams,
) -> Result<models::SmartTransferTicketResponse, Error<SubmitTicketError>> {
let SubmitTicketParams {
ticket_id,
smart_transfer_submit_ticket,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/{ticketId}/submit",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
local_var_req_builder = local_var_req_builder.json(&smart_transfer_submit_ticket);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketResponse`"
))));
}
}
} else {
let local_var_entity: Option<SubmitTicketError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
async fn update_ticket_term(
&self,
params: UpdateTicketTermParams,
) -> Result<models::SmartTransferTicketTermResponse, Error<UpdateTicketTermError>> {
let UpdateTicketTermParams {
ticket_id,
term_id,
smart_transfer_update_ticket_term,
idempotency_key,
} = params;
let local_var_configuration = &self.configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/smart-transfers/{ticketId}/terms/{termId}",
local_var_configuration.base_path,
ticketId = crate::apis::urlencode(ticket_id),
termId = crate::apis::urlencode(term_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder = local_var_req_builder
.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(local_var_param_value) = idempotency_key {
local_var_req_builder =
local_var_req_builder.header("Idempotency-Key", local_var_param_value.to_string());
}
local_var_req_builder = local_var_req_builder.json(&smart_transfer_update_ticket_term);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content_type = local_var_resp
.headers()
.get("content-type")
.and_then(|v| v.to_str().ok())
.unwrap_or("application/octet-stream");
let local_var_content_type = super::ContentType::from(local_var_content_type);
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
match local_var_content_type {
ContentType::Json => {
crate::deserialize_wrapper(&local_var_content).map_err(Error::from)
}
ContentType::Text => {
return Err(Error::from(serde_json::Error::custom(
"Received `text/plain` content type response that cannot be converted to \
`models::SmartTransferTicketTermResponse`",
)));
}
ContentType::Unsupported(local_var_unknown_type) => {
return Err(Error::from(serde_json::Error::custom(format!(
"Received `{local_var_unknown_type}` content type response that cannot be \
converted to `models::SmartTransferTicketTermResponse`"
))));
}
}
} else {
let local_var_entity: Option<UpdateTicketTermError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ApproveDvPTicketTermError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CancelTicketError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CreateTicketError {
Status403(models::SmartTransferForbiddenResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CreateTicketTermError {
Status403(models::SmartTransferForbiddenResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FindTicketByIdError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FindTicketTermByIdError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FulfillTicketError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FundDvpTicketError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FundTicketTermError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetSmartTransferStatisticError {
Status403(models::SmartTransferForbiddenResponse),
DefaultResponse(models::ErrorSchema),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetSmartTransferUserGroupsError {
Status403(models::SmartTransferForbiddenResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ManuallyFundTicketTermError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum RemoveTicketTermError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SearchTicketsError {
Status403(models::SmartTransferForbiddenResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SetExternalRefIdError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SetTicketExpirationError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SetUserGroupsError {
Status403(models::SmartTransferForbiddenResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SubmitTicketError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
Status422(models::SmartTransferBadRequestResponse),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum UpdateTicketTermError {
Status403(models::SmartTransferForbiddenResponse),
Status404(models::SmartTransferNotFoundResponse),
UnknownValue(serde_json::Value),
}