neptunium_http/endpoints/guild/emoji/
create_guild_emoji.rs1use 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}