Add guild preview feature
This commit is contained in:
		
							parent
							
								
									d8e65a4328
								
							
						
					
					
						commit
						35da2dbe98
					
				
					 2 changed files with 53 additions and 2 deletions
				
			
		|  | @ -1,7 +1,7 @@ | |||
| import { Client } from '../models/client.ts' | ||||
| import { Guild } from '../structures/guild.ts' | ||||
| import { Role } from '../structures/role.ts' | ||||
| import { GUILD, GUILDS } from '../types/endpoint.ts' | ||||
| import { GUILD, GUILDS, GUILD_PREVIEW } from '../types/endpoint.ts' | ||||
| import { | ||||
|   GuildChannels, | ||||
|   GuildPayload, | ||||
|  | @ -10,11 +10,14 @@ import { | |||
|   GuildCreatePayload, | ||||
|   Verification, | ||||
|   GuildCreateChannelOptions, | ||||
|   GuildCreateChannelPayload | ||||
|   GuildCreateChannelPayload, | ||||
|   GuildPreview, | ||||
|   GuildPreviewPayload | ||||
| } from '../types/guild.ts' | ||||
| import { BaseManager } from './base.ts' | ||||
| import { MembersManager } from './members.ts' | ||||
| import { fetchAuto } from '../../deps.ts' | ||||
| import { Emoji } from '../structures/emoji.ts' | ||||
| 
 | ||||
| export interface GuildCreateOptions { | ||||
|   name: string | ||||
|  | @ -109,4 +112,25 @@ export class GuildManager extends BaseManager<GuildPayload, Guild> { | |||
| 
 | ||||
|     return guild | ||||
|   } | ||||
| 
 | ||||
|   async preview(guildID: string): Promise<GuildPreview> { | ||||
|     const resp: GuildPreviewPayload = await this.client.rest.get( | ||||
|       GUILD_PREVIEW(guildID) | ||||
|     ) | ||||
| 
 | ||||
|     const result: GuildPreview = { | ||||
|       id: resp.id, | ||||
|       name: resp.name, | ||||
|       icon: resp.icon, | ||||
|       splash: resp.splash, | ||||
|       discoverySplash: resp.discovery_splash, | ||||
|       emojis: resp.emojis.map((emoji) => new Emoji(this.client, emoji)), | ||||
|       features: resp.features, | ||||
|       approximateMemberCount: resp.approximate_member_count, | ||||
|       approximatePresenceCount: resp.approximate_presence_count, | ||||
|       description: resp.description | ||||
|     } | ||||
| 
 | ||||
|     return result | ||||
|   } | ||||
| } | ||||
|  |  | |||
|  | @ -1,3 +1,4 @@ | |||
| import { Emoji } from '../structures/emoji.ts' | ||||
| import { CategoryChannel } from '../structures/guildCategoryChannel.ts' | ||||
| import { VoiceChannel } from '../structures/guildVoiceChannel.ts' | ||||
| import { GuildTextChannel } from '../structures/textChannel.ts' | ||||
|  | @ -204,3 +205,29 @@ export interface GuildCreateChannelOptions { | |||
|   type: ChannelTypes | ||||
|   parentID?: string | ||||
| } | ||||
| 
 | ||||
| export interface GuildPreviewPayload { | ||||
|   id: string | ||||
|   name: string | ||||
|   icon: string | null | ||||
|   splash: string | null | ||||
|   discovery_splash: string | null | ||||
|   emojis: EmojiPayload[] | ||||
|   features: GuildFeatures[] | ||||
|   approximate_member_count: number | ||||
|   approximate_presence_count: number | ||||
|   description: string | null | ||||
| } | ||||
| 
 | ||||
| export interface GuildPreview { | ||||
|   id: string | ||||
|   name: string | ||||
|   icon: string | null | ||||
|   splash: string | null | ||||
|   discoverySplash: string | null | ||||
|   emojis: Emoji[] | ||||
|   features: GuildFeatures[] | ||||
|   approximateMemberCount: number | ||||
|   approximatePresenceCount: number | ||||
|   description: string | null | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue