neptunium_http/endpoints/webhooks/
edit_webhook_message.rs1use bon::Builder;
2use neptunium_model::{
3 channel::message::Message,
4 id::{
5 Id,
6 marker::{MessageMarker, WebhookMarker},
7 },
8};
9use reqwest::Method;
10use zeroize::Zeroizing;
11
12use crate::{
13 endpoints::{Endpoint, channel::EditMessageBody},
14 request::Request,
15};
16
17#[derive(Builder, Clone, Debug)]
19pub struct EditWebhookMessage {
20 pub webhook_id: Id<WebhookMarker>,
21 #[builder(into)]
22 pub token: Zeroizing<String>,
23 pub message_id: Id<MessageMarker>,
24 pub body: EditMessageBody,
25}
26
27impl Endpoint for EditWebhookMessage {
28 type Response = Message;
29
30 fn into_request(self) -> crate::request::Request {
31 Request::builder()
32 .use_authorization_token(false)
33 .method(Method::PATCH)
34 .body(serde_json::to_string(&self.body).unwrap())
35 .path(format!(
36 "/webhooks/{}/{}/messages/{}",
37 self.webhook_id, *self.token, self.message_id
38 ))
39 .build()
40 }
41}