1use crate::error::HttpError;
2use crate::HttpClient;
3use titanium_model::{Emoji, Snowflake, Sticker};
4
5impl HttpClient {
6 pub async fn list_guild_emojis(
12 &self,
13 guild_id: Snowflake,
14 ) -> Result<Vec<Emoji<'static>>, HttpError> {
15 let route = format!("/guilds/{}/emojis", guild_id);
16 self.get(&route).await
17 }
18
19 pub async fn get_guild_emoji(
21 &self,
22 guild_id: Snowflake,
23 emoji_id: Snowflake,
24 ) -> Result<Emoji<'static>, HttpError> {
25 let route = format!("/guilds/{}/emojis/{}", guild_id, emoji_id);
26 self.get(&route).await
27 }
28
29 pub async fn create_guild_emoji(
31 &self,
32 guild_id: Snowflake,
33 params: &CreateEmojiParams,
34 ) -> Result<Emoji<'static>, HttpError> {
35 let route = format!("/guilds/{}/emojis", guild_id);
36 self.post(&route, params).await
37 }
38
39 pub async fn modify_guild_emoji(
41 &self,
42 guild_id: Snowflake,
43 emoji_id: Snowflake,
44 params: &ModifyEmojiParams,
45 ) -> Result<Emoji<'static>, HttpError> {
46 let route = format!("/guilds/{}/emojis/{}", guild_id, emoji_id);
47 self.patch(&route, params).await
48 }
49
50 pub async fn delete_guild_emoji(
52 &self,
53 guild_id: Snowflake,
54 emoji_id: Snowflake,
55 ) -> Result<(), HttpError> {
56 let route = format!("/guilds/{}/emojis/{}", guild_id, emoji_id);
57 self.delete(&route).await
58 }
59
60 pub async fn list_guild_stickers(
66 &self,
67 guild_id: Snowflake,
68 ) -> Result<Vec<Sticker<'static>>, HttpError> {
69 let route = format!("/guilds/{}/stickers", guild_id);
70 self.get(&route).await
71 }
72
73 pub async fn get_guild_sticker(
75 &self,
76 guild_id: Snowflake,
77 sticker_id: Snowflake,
78 ) -> Result<Sticker<'static>, HttpError> {
79 let route = format!("/guilds/{}/stickers/{}", guild_id, sticker_id);
80 self.get(&route).await
81 }
82
83 pub async fn create_guild_sticker(
85 &self,
86 guild_id: Snowflake,
87 params: &CreateStickerParams,
88 ) -> Result<Sticker<'static>, HttpError> {
89 let route = format!("/guilds/{}/stickers", guild_id);
94 self.post(&route, params).await
95 }
96
97 pub async fn delete_guild_sticker(
99 &self,
100 guild_id: Snowflake,
101 sticker_id: Snowflake,
102 ) -> Result<(), HttpError> {
103 let route = format!("/guilds/{}/stickers/{}", guild_id, sticker_id);
104 self.delete(&route).await
105 }
106}
107
108use titanium_model::builder::{CreateEmoji, CreateSticker, ModifyEmoji};
110
111pub type CreateEmojiParams = CreateEmoji;
113pub type ModifyEmojiParams = ModifyEmoji;
114pub type CreateStickerParams = CreateSticker;
115
116