alchemy_api/api/notify/webhook_addresses/
get.rs1use crate::{
2 cores::{endpoint::Endpoint, params::QueryParams},
3 types::common::PaginationObject,
4};
5use derive_builder::Builder;
6use ethers_core::types::Address;
7use http::Method;
8use serde::{Deserialize, Serialize};
9
10#[derive(Default, Debug, Builder, Clone, Serialize, Deserialize)]
13#[builder(setter(into, strip_option))]
14pub struct GetWebhookAddresses {
15 #[builder(setter)]
17 webhook_id: String,
18 #[builder(default)]
20 limit: Option<u64>,
21 #[builder(default)]
23 after: Option<String>,
24}
25
26impl GetWebhookAddresses {
27 pub fn builder() -> GetWebhookAddressesBuilder {
29 GetWebhookAddressesBuilder::default()
30 }
31}
32
33impl Endpoint for GetWebhookAddresses {
34 fn method(&self) -> http::Method {
35 Method::GET
36 }
37
38 fn endpoint(&self) -> std::borrow::Cow<'static, str> {
39 "api/webhook-addresses".into()
40 }
41
42 fn parameters(&self) -> crate::cores::params::QueryParams<'_> {
43 let mut params = QueryParams::default();
44 params.push("webhook_id", self.webhook_id.clone());
45 params.push_opt("limit", self.limit);
46 params.push_opt("after", self.after.clone());
47 params
48 }
49}
50
51#[derive(Debug, Clone, Serialize, Deserialize)]
53pub struct GetWebhookAddressesResponse {
54 data: Vec<Address>,
55 pagination: PaginationObject,
56}
57
58impl GetWebhookAddressesResponse {
59 pub fn data(&self) -> Vec<Address> {
61 self.data.clone()
62 }
63
64 pub fn pagination(&self) -> PaginationObject {
66 self.pagination.clone()
67 }
68}