#[doc(hidden)]
use reqwest::Body;
#[doc(hidden)]
use serde::{Deserialize, Serialize};
use crate::{enums::currency::Currency, structs::party::Party};
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct RequestToPay {
pub amount: String, pub currency: Currency,
#[serde(rename = "externalId")]
pub external_id: String,
pub payer: Party,
#[serde(rename = "payerMessage")]
pub payer_message: String, #[serde(rename = "payeeNote")]
pub payee_note: String, }
impl RequestToPay {
pub fn new(
amount: String,
currency: Currency,
payer: Party,
payer_message: String,
payee_note: String,
) -> Self {
let external_id = uuid::Uuid::new_v4().to_string();
RequestToPay {
amount,
currency,
external_id,
payer,
payer_message,
payee_note,
}
}
}
impl From<RequestToPay> for Body {
fn from(request_to_pay: RequestToPay) -> Self {
Body::from(serde_json::to_string(&request_to_pay).unwrap())
}
}