dfns_sdk_rust/agreements/
mod.rs1pub mod delegated;
4pub mod types;
5
6#[allow(unused_imports)]
7use types::*;
8
9#[derive(Clone)]
11pub struct AgreementsClient {
12 client: crate::client::Client,
13}
14
15impl AgreementsClient {
16 pub fn new(client: crate::client::Client) -> Self {
17 AgreementsClient { client }
18 }
19
20 pub async fn get_latest_unaccepted_agreement(
22 &self,
23 query: Option<GetLatestUnacceptedAgreementQuery>,
24 ) -> Result<GetLatestUnacceptedAgreementResponse, crate::error::Error> {
25 let mut path = String::from("/agreements/latest-unaccepted");
26 if let Some(query) = &query {
27 let mut q: Vec<String> = Vec::new();
28 q.push(format!(
29 "agreementType={}",
30 urlencoding::encode(&query.agreement_type.to_string())
31 ));
32 if !q.is_empty() {
33 path.push('?');
34 path.push_str(&q.join("&"));
35 }
36 }
37 self.client
38 .request::<GetLatestUnacceptedAgreementResponse>(
39 reqwest::Method::GET,
40 &path,
41 None,
42 false,
43 )
44 .await
45 }
46
47 pub async fn record_agreement_acceptance(
49 &self,
50 agreement_id: String,
51 ) -> Result<RecordAgreementAcceptanceResponse, crate::error::Error> {
52 let path = format!("/agreements/{}/accept", urlencoding::encode(&agreement_id));
53 self.client
54 .request::<RecordAgreementAcceptanceResponse>(reqwest::Method::POST, &path, None, true)
55 .await
56 }
57}