pub mod delegated;
pub mod types;
#[allow(unused_imports)]
use types::*;
#[derive(Clone)]
pub struct AgreementsClient {
client: crate::client::Client,
}
impl AgreementsClient {
pub fn new(client: crate::client::Client) -> Self {
AgreementsClient { client }
}
pub async fn get_latest_unaccepted_agreement(
&self,
query: Option<GetLatestUnacceptedAgreementQuery>,
) -> Result<GetLatestUnacceptedAgreementResponse, crate::error::Error> {
let mut path = String::from("/agreements/latest-unaccepted");
if let Some(query) = &query {
let mut q: Vec<String> = Vec::new();
q.push(format!(
"agreementType={}",
urlencoding::encode(&query.agreement_type.to_string())
));
if !q.is_empty() {
path.push('?');
path.push_str(&q.join("&"));
}
}
self.client
.request::<GetLatestUnacceptedAgreementResponse>(
reqwest::Method::GET,
&path,
None,
false,
)
.await
}
pub async fn record_agreement_acceptance(
&self,
agreement_id: String,
) -> Result<RecordAgreementAcceptanceResponse, crate::error::Error> {
let path = format!("/agreements/{}/accept", urlencoding::encode(&agreement_id));
self.client
.request::<RecordAgreementAcceptanceResponse>(reqwest::Method::POST, &path, None, true)
.await
}
}