Skip to main content

neptunium_http/endpoints/guild/emoji/
create_guild_emoji.rs

1use bon::Builder;
2use neptunium_model::{
3    guild::properties::GuildEmoji,
4    id::{Id, marker::GuildMarker},
5};
6use reqwest::Method;
7use serde_json::json;
8
9use crate::{
10    endpoints::{Endpoint, guild::emoji::GuildEmojiCreateData},
11    request::Request,
12};
13
14#[derive(Builder, Clone, Debug)]
15pub struct CreateGuildEmoji {
16    pub guild_id: Id<GuildMarker>,
17    pub emoji: GuildEmojiCreateData,
18}
19
20impl Endpoint for CreateGuildEmoji {
21    type Response = GuildEmoji;
22
23    fn into_request(self) -> crate::request::Request {
24        Request::builder()
25            .body(
26                json!({
27                    "name": self.emoji.name,
28                    "image": self.emoji.image,
29                })
30                .to_string(),
31            )
32            .method(Method::POST)
33            .path(format!("/guilds/{}/emojis", self.guild_id))
34            .build()
35    }
36}