TheRealToxicDev gist felülvizsgálása . Revízióhoz ugrás
1 file changed, 1 insertion, 1 deletion
user.service.ts
@@ -10,7 +10,7 @@ export const fetchDiscordUser = async ({ id }): Promise<DiscordUser> => { | |||
10 | 10 | if (response.status >= 429) throw boom.tooManyRequests('Too many requests'); | |
11 | 11 | if (response.status >= 427) throw boom.tooManyRequests('Too many requests'); | |
12 | 12 | ||
13 | - | let user = await response.json() as any; | |
13 | + | let user = await response.json() as DiscordUser; | |
14 | 14 | let bannner: any = user?.banner ? user.banner : ''; | |
15 | 15 | let avataar: any = user?.avatar ? user.avatar : ''; | |
16 | 16 |
TheRealToxicDev gist felülvizsgálása . Revízióhoz ugrás
2 files changed, 69 insertions
typings.d.ts(fájl létrehozva)
@@ -0,0 +1,36 @@ | |||
1 | + | export type Snowflake = string; | |
2 | + | ||
3 | + | export type DiscordUser = { | |
4 | + | id: Snowflake; | |
5 | + | username?: string; | |
6 | + | global_name?: string; | |
7 | + | discriminator?: any; | |
8 | + | accent_color?: ColorData['accent_color']; | |
9 | + | banner_color?: ColorData['banner_color']; | |
10 | + | created_at?: any; | |
11 | + | avatar?: AvatarData; | |
12 | + | banner?: BannerData; | |
13 | + | } | |
14 | + | ||
15 | + | export type AvatarDecorationData = { | |
16 | + | asset: string; | |
17 | + | sku_id: string; | |
18 | + | } | |
19 | + | ||
20 | + | export type AvatarData = { | |
21 | + | id: DiscordUser['avatar']; | |
22 | + | link: string; | |
23 | + | is_animated: any; | |
24 | + | } | |
25 | + | ||
26 | + | export type BannerData = { | |
27 | + | id: DiscordUser['banner']; | |
28 | + | link: string; | |
29 | + | color: number | null; | |
30 | + | is_animated: any; | |
31 | + | } | |
32 | + | ||
33 | + | export type ColorData = { | |
34 | + | accent_color: number | any; | |
35 | + | banner_color: number | any; | |
36 | + | } |
user.service.ts(fájl létrehozva)
@@ -0,0 +1,33 @@ | |||
1 | + | export const fetchDiscordUser = async ({ id }): Promise<DiscordUser> => { | |
2 | + | ||
3 | + | let response = await fetch(env.DISCORD.API_URL + `users/${id}`, { | |
4 | + | headers: { | |
5 | + | 'Content-Type': 'application/json', | |
6 | + | 'Authorization': `Bot ${env.DISCORD.API_KEY}` | |
7 | + | } | |
8 | + | }); | |
9 | + | ||
10 | + | if (response.status >= 429) throw boom.tooManyRequests('Too many requests'); | |
11 | + | if (response.status >= 427) throw boom.tooManyRequests('Too many requests'); | |
12 | + | ||
13 | + | let user = await response.json() as any; | |
14 | + | let bannner: any = user?.banner ? user.banner : ''; | |
15 | + | let avataar: any = user?.avatar ? user.avatar : ''; | |
16 | + | ||
17 | + | return { | |
18 | + | id: user.id, | |
19 | + | global_name: user.global_name, | |
20 | + | created_at: `${new Date(await snowflakeToTimestamp(user.id))}`, | |
21 | + | avatar: { | |
22 | + | id: avataar, | |
23 | + | link: `https://cdn.discordapp.com/avatars/${user.id}/${avataar}.png`, | |
24 | + | is_animated: avataar.startsWith('a_') ? true : false, | |
25 | + | }, | |
26 | + | banner: { | |
27 | + | id: bannner, | |
28 | + | link: `https://cdn.discordapp.com/banners/${user.id}/${bannner}.png`, | |
29 | + | is_animated: bannner.startsWith('a_') ? true : false, | |
30 | + | color: user.banner_color, | |
31 | + | }, | |
32 | + | }; | |
33 | + | } |