feat(structures): add Emoji methods
This commit is contained in:
		
							parent
							
								
									3695b81de6
								
							
						
					
					
						commit
						9c048686c8
					
				
					 2 changed files with 23 additions and 4 deletions
				
			
		|  | @ -1,15 +1,14 @@ | ||||||
| import { Client } from '../models/client.ts' | import { Client } from '../models/client.ts' | ||||||
| import { EmojiPayload } from '../types/emoji.ts' | import { EmojiPayload } from '../types/emoji.ts' | ||||||
|  | import { EMOJI } from '../types/endpoint.ts' | ||||||
| import { Base } from './base.ts' | import { Base } from './base.ts' | ||||||
| import { Guild } from './guild.ts' |  | ||||||
| import { User } from './user.ts' | import { User } from './user.ts' | ||||||
| 
 | 
 | ||||||
| export class Emoji extends Base { | export class Emoji extends Base { | ||||||
|   id: string |   id: string | null; | ||||||
|   name: string |   name: string | ||||||
|   roles?: string[] |   roles?: string[] | ||||||
|   user?: User |   user?: User | ||||||
|   guild?: Guild |  | ||||||
|   requireColons?: boolean |   requireColons?: boolean | ||||||
|   managed?: boolean |   managed?: boolean | ||||||
|   animated?: boolean |   animated?: boolean | ||||||
|  | @ -37,6 +36,18 @@ export class Emoji extends Base { | ||||||
|     this.available = data.available |     this.available = data.available | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   /** Modify the given emoji. Requires the MANAGE_EMOJIS permission. Returns the updated emoji object on success. Fires a Guild Emojis Update Gateway event. */ | ||||||
|  |   async edit(guildID: string, data: ModifyGuildEmojiParams) { | ||||||
|  |     const res = await this.client.rest.patch(EMOJI(guildID, this.id!)); | ||||||
|  |     return new Emoji(this.client, res); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   /** Delete the given emoji. Requires the MANAGE_EMOJIS permission. Returns `true` on success. Fires a Guild Emojis Update Gateway event. */ | ||||||
|  |   async delete(guildID: string): Promise<boolean> { | ||||||
|  |     await this.client.rest.patch(EMOJI(guildID, this.id!)); | ||||||
|  |     return true; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   readFromData(data: EmojiPayload): void { |   readFromData(data: EmojiPayload): void { | ||||||
|     this.id = data.id ?? this.id |     this.id = data.id ?? this.id | ||||||
|     this.name = data.name ?? this.name |     this.name = data.name ?? this.name | ||||||
|  | @ -48,3 +59,11 @@ export class Emoji extends Base { | ||||||
|     if (data.user !== undefined) this.user = new User(this.client, data.user) |     if (data.user !== undefined) this.user = new User(this.client, data.user) | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | /** https://discord.com/developers/docs/resources/emoji#modify-guild-emoji-json-params */ | ||||||
|  | export interface ModifyGuildEmojiParams { | ||||||
|  |   /** Name of the emoji */ | ||||||
|  |   name: string; | ||||||
|  |   /** Roles to which this emoji will be whitelisted */ | ||||||
|  |   roles: string[] | null; | ||||||
|  | } | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| import { UserPayload } from './user.ts' | import { UserPayload } from './user.ts' | ||||||
| 
 | 
 | ||||||
| export interface EmojiPayload { | export interface EmojiPayload { | ||||||
|   id: string |   id: string | null | ||||||
|   name: string |   name: string | ||||||
|   roles?: string[] |   roles?: string[] | ||||||
|   user?: UserPayload |   user?: UserPayload | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue