Skip to main content

neptunium_http/endpoints/webhooks/
update_webhook_with_token.rs

1use bon::Builder;
2use neptunium_model::id::{Id, marker::WebhookMarker};
3use reqwest::Method;
4use zeroize::Zeroizing;
5
6use crate::{
7    endpoints::{
8        Endpoint,
9        webhooks::{
10            get_webhook_with_token::GetWebhookWithTokenResponse, update_webhook::UpdateWebhookBody,
11        },
12    },
13    request::Request,
14};
15
16#[derive(Builder, Clone, Debug)]
17pub struct UpdateWebhookWithToken {
18    pub webhook_id: Id<WebhookMarker>,
19    pub token: Zeroizing<String>,
20    pub body: UpdateWebhookBody,
21}
22
23impl Endpoint for UpdateWebhookWithToken {
24    type Response = GetWebhookWithTokenResponse;
25
26    fn into_request(self) -> crate::request::Request {
27        Request::builder()
28            .method(Method::PATCH)
29            .use_authorization_token(false)
30            .body(serde_json::to_string(&self.body).unwrap())
31            .path(format!("/webhooks/{}/{}", self.webhook_id, *self.token))
32            .build()
33    }
34}