Skip to main content

u_sdk/email/
domain.rs

1use super::utils::parse_json_response;
2use super::{Client, Error, QueryDomainByParamResult};
3use bon::Builder;
4use serde::Serialize;
5use u_sdk_common::helper::into_header_map;
6use u_sdk_common::open_api_sign::{SignParams, get_openapi_request_header};
7
8#[serde_with::skip_serializing_none]
9#[derive(Builder, Serialize)]
10#[builder(on(String, into))]
11#[serde(rename_all = "PascalCase")]
12pub struct QueryDomainByParam<'a> {
13    #[builder(start_fn)]
14    #[serde(skip_serializing)]
15    client: &'a Client,
16
17    page_no: Option<u32>,
18    page_size: Option<u16>,
19    key_word: Option<String>,
20    status: Option<u8>,
21}
22
23impl QueryDomainByParam<'_> {
24    pub async fn send(&self) -> Result<QueryDomainByParamResult, Error> {
25        let creds = self.client.credentials_provider.load().await?;
26        let sign_params = SignParams {
27            req_method: "GET",
28            host: &self.client.host,
29            query_map: self,
30            x_acs_action: "QueryDomainByParam",
31            x_acs_version: "2015-11-23",
32            x_acs_security_token: creds.sts_security_token.as_deref(),
33            request_body: None,
34            style: &self.client.style,
35        };
36        let (headers, url_) =
37            get_openapi_request_header(&creds.access_key_secret, &creds.access_key_id, sign_params)
38                .map_err(|e| Error::Common(format!("get_common_headers error: {}", e)))?;
39
40        let resp = self
41            .client
42            .http_client
43            .get(url_)
44            .headers(into_header_map(headers))
45            .send()
46            .await?;
47
48        let resp = parse_json_response(resp).await?;
49        Ok(resp)
50    }
51}