add RESTManager#endpoints
This commit is contained in:
		
							parent
							
								
									de7996d552
								
							
						
					
					
						commit
						1c7416628d
					
				
					 7 changed files with 117611 additions and 7 deletions
				
			
		
							
								
								
									
										116161
									
								
								harmony.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										116161
									
								
								harmony.js
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										1291
									
								
								src/rest/endpoints.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1291
									
								
								src/rest/endpoints.ts
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -11,6 +11,7 @@ import { | ||||||
|   METHODS |   METHODS | ||||||
| } from './types.ts' | } from './types.ts' | ||||||
| import { Constants } from '../types/constants.ts' | import { Constants } from '../types/constants.ts' | ||||||
|  | import { RESTEndpoints } from './endpoints.ts' | ||||||
| 
 | 
 | ||||||
| export class DiscordAPIError extends Error { | export class DiscordAPIError extends Error { | ||||||
|   name = 'DiscordAPIError' |   name = 'DiscordAPIError' | ||||||
|  | @ -171,6 +172,7 @@ export class RESTManager { | ||||||
|   canary?: boolean |   canary?: boolean | ||||||
|   /** Optional Harmony Client object */ |   /** Optional Harmony Client object */ | ||||||
|   client?: Client |   client?: Client | ||||||
|  |   endpoints: RESTEndpoints | ||||||
| 
 | 
 | ||||||
|   constructor(options?: RESTOptions) { |   constructor(options?: RESTOptions) { | ||||||
|     this.api = builder(this) |     this.api = builder(this) | ||||||
|  | @ -181,6 +183,7 @@ export class RESTManager { | ||||||
|     if (options?.userAgent !== undefined) this.userAgent = options.userAgent |     if (options?.userAgent !== undefined) this.userAgent = options.userAgent | ||||||
|     if (options?.canary !== undefined) this.canary = options.canary |     if (options?.canary !== undefined) this.canary = options.canary | ||||||
|     if (options?.client !== undefined) this.client = options.client |     if (options?.client !== undefined) this.client = options.client | ||||||
|  |     this.endpoints = new RESTEndpoints(this) | ||||||
|     this.handleRateLimits() |     this.handleRateLimits() | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -37,7 +37,7 @@ export interface GuildTextChannelPayload extends GuildTextBasedChannelPayload { | ||||||
|   rate_limit_per_user: number |   rate_limit_per_user: number | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export interface GuildNewsChannelPayload extends GuildTextBasedChannelPayload { } | export interface GuildNewsChannelPayload extends GuildTextBasedChannelPayload {} | ||||||
| 
 | 
 | ||||||
| export interface GuildVoiceChannelPayload extends GuildChannelPayload { | export interface GuildVoiceChannelPayload extends GuildChannelPayload { | ||||||
|   bitrate: string |   bitrate: string | ||||||
|  | @ -56,7 +56,7 @@ export interface GroupDMChannelPayload extends DMChannelPayload { | ||||||
| 
 | 
 | ||||||
| export interface GuildCategoryChannelPayload | export interface GuildCategoryChannelPayload | ||||||
|   extends ChannelPayload, |   extends ChannelPayload, | ||||||
|   GuildChannelPayload { } |     GuildChannelPayload {} | ||||||
| 
 | 
 | ||||||
| export interface ModifyChannelPayload { | export interface ModifyChannelPayload { | ||||||
|   name?: string |   name?: string | ||||||
|  | @ -67,7 +67,7 @@ export interface ModifyChannelPayload { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export interface ModifyGuildCategoryChannelPayload | export interface ModifyGuildCategoryChannelPayload | ||||||
|   extends ModifyChannelPayload { } |   extends ModifyChannelPayload {} | ||||||
| 
 | 
 | ||||||
| export interface ModifyGuildTextBasedChannelPayload | export interface ModifyGuildTextBasedChannelPayload | ||||||
|   extends ModifyChannelPayload { |   extends ModifyChannelPayload { | ||||||
|  | @ -81,7 +81,7 @@ export interface ModifyGuildTextChannelPayload | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export interface ModifyGuildNewsChannelPayload | export interface ModifyGuildNewsChannelPayload | ||||||
|   extends ModifyGuildTextBasedChannelPayload { } |   extends ModifyGuildTextBasedChannelPayload {} | ||||||
| 
 | 
 | ||||||
| export interface ModifyVoiceChannelPayload extends ModifyChannelPayload { | export interface ModifyVoiceChannelPayload extends ModifyChannelPayload { | ||||||
|   bitrate?: number | null |   bitrate?: number | null | ||||||
|  | @ -96,7 +96,7 @@ export interface ModifyChannelOption { | ||||||
|   nsfw?: boolean | null |   nsfw?: boolean | null | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export interface ModifyGuildCategoryChannelOption extends ModifyChannelOption { } | export interface ModifyGuildCategoryChannelOption extends ModifyChannelOption {} | ||||||
| 
 | 
 | ||||||
| export interface ModifyGuildTextBasedChannelOption extends ModifyChannelOption { | export interface ModifyGuildTextBasedChannelOption extends ModifyChannelOption { | ||||||
|   type?: number |   type?: number | ||||||
|  | @ -109,7 +109,7 @@ export interface ModifyGuildTextChannelOption | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export interface ModifyGuildNewsChannelOption | export interface ModifyGuildNewsChannelOption | ||||||
|   extends ModifyGuildTextBasedChannelOption { } |   extends ModifyGuildTextBasedChannelOption {} | ||||||
| 
 | 
 | ||||||
| export interface ModifyVoiceChannelOption extends ModifyChannelOption { | export interface ModifyVoiceChannelOption extends ModifyChannelOption { | ||||||
|   bitrate?: number | null |   bitrate?: number | null | ||||||
|  | @ -382,3 +382,32 @@ export interface MessageInteractionPayload { | ||||||
|   name: string |   name: string | ||||||
|   user: UserPayload |   user: UserPayload | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | export interface EditMessagePayload { | ||||||
|  |   content?: string | ||||||
|  |   embed?: EmbedPayload | ||||||
|  |   allowed_mentions?: AllowedMentionsPayload | ||||||
|  |   flags?: number | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export interface CreateMessagePayload extends EditMessagePayload { | ||||||
|  |   nonce?: string | ||||||
|  |   tts?: boolean | ||||||
|  |   message_reference?: MessageReference | ||||||
|  |   file?: MessageAttachment | ||||||
|  |   files?: MessageAttachment[] | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export interface CreateWebhookMessageBasePayload { | ||||||
|  |   content?: string | ||||||
|  |   embeds?: EmbedPayload[] | ||||||
|  |   tts?: boolean | ||||||
|  |   file?: MessageAttachment | ||||||
|  |   files?: MessageAttachment[] | ||||||
|  |   allowed_mentions?: AllowedMentionsPayload | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export interface CreateWebhookMessagePayload extends CreateMessagePayload { | ||||||
|  |   username?: string | ||||||
|  |   avatar_url?: string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -10,3 +10,9 @@ export interface EmojiPayload { | ||||||
|   animated?: boolean |   animated?: boolean | ||||||
|   available?: boolean |   available?: boolean | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | export interface CreateEmojiPayload { | ||||||
|  |   name: string | ||||||
|  |   image: string | ||||||
|  |   roles?: string[] | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -23,6 +23,7 @@ import { PresenceUpdatePayload } from './gateway.ts' | ||||||
| import { RolePayload } from './role.ts' | import { RolePayload } from './role.ts' | ||||||
| import { UserPayload } from './user.ts' | import { UserPayload } from './user.ts' | ||||||
| import { VoiceStatePayload } from './voice.ts' | import { VoiceStatePayload } from './voice.ts' | ||||||
|  | import { WebhookPayload } from './webhook.ts' | ||||||
| 
 | 
 | ||||||
| export interface GuildPayload { | export interface GuildPayload { | ||||||
|   id: string |   id: string | ||||||
|  | @ -326,3 +327,99 @@ export interface GuildBeginPrunePayload { | ||||||
|   compute_prune_count?: boolean |   compute_prune_count?: boolean | ||||||
|   include_roles?: string[] |   include_roles?: string[] | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | export enum AuditLogEvents { | ||||||
|  |   GuildUpdate = 1, | ||||||
|  |   ChannelCreate = 10, | ||||||
|  |   ChannelUpdate = 11, | ||||||
|  |   ChannelDelete = 12, | ||||||
|  |   ChannelOverwriteCreate = 13, | ||||||
|  |   ChannelOverwriteUpdate = 14, | ||||||
|  |   ChannelOverwriteDelete = 15, | ||||||
|  |   MemberKick = 20, | ||||||
|  |   MemberPrune = 21, | ||||||
|  |   MemberBanAdd = 22, | ||||||
|  |   MemberBanRemove = 23, | ||||||
|  |   MemberUpdate = 24, | ||||||
|  |   MemberRoleUpdate = 25, | ||||||
|  |   MemberMove = 26, | ||||||
|  |   MemberDisconnect = 27, | ||||||
|  |   BotAdd = 28, | ||||||
|  |   RoleCreate = 30, | ||||||
|  |   RoleUpdate = 31, | ||||||
|  |   RoleDelete = 32, | ||||||
|  |   InviteCreate = 40, | ||||||
|  |   InviteUpdate = 41, | ||||||
|  |   InviteDelete = 42, | ||||||
|  |   WebhookCreate = 50, | ||||||
|  |   WebhookUpdate = 51, | ||||||
|  |   WebhookDelete = 52, | ||||||
|  |   EmojiCreate = 60, | ||||||
|  |   EmojiUpdate = 61, | ||||||
|  |   EmojiDelete = 62, | ||||||
|  |   MessageDelete = 72, | ||||||
|  |   MessageBulkDelete = 73, | ||||||
|  |   MessagePin = 74, | ||||||
|  |   MessageUnpin = 75, | ||||||
|  |   IntegrationCreate = 80, | ||||||
|  |   IntegrationUpdate = 81, | ||||||
|  |   IntegrationDelete = 82 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export interface AuditLogPayload { | ||||||
|  |   /** list of webhooks found in the audit log */ | ||||||
|  |   webhooks: WebhookPayload[] | ||||||
|  |   /** list of users found in the audit log */ | ||||||
|  |   users: UserPayload[] | ||||||
|  |   /** list of audit log entries */ | ||||||
|  |   audit_log_entries: AuditLogEntryPayload[] | ||||||
|  |   /** list of partial integration objects */ | ||||||
|  |   integrations: GuildIntegrationPayload[] | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export interface AuditLogEntryPayload { | ||||||
|  |   /** id of the affected entity (webhook, user, role, etc.) */ | ||||||
|  |   target_id: string | null | ||||||
|  |   /** changes made to the target_id */ | ||||||
|  |   changes?: AuditLogChangePayload[] | ||||||
|  |   /** the user who made the changes */ | ||||||
|  |   user_id: string | ||||||
|  |   /** id of the entry */ | ||||||
|  |   id: string | ||||||
|  |   /** type of action that occurred */ | ||||||
|  |   action_type: AuditLogEvents | ||||||
|  |   /** additional info for certain action types */ | ||||||
|  |   options?: OptionalAuditEntryInfoPayload | ||||||
|  |   /** the reason for the change (0-512 characters) */ | ||||||
|  |   reason?: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export interface OptionalAuditEntryInfoPayload { | ||||||
|  |   /** number of days after which inactive members were kicked */ | ||||||
|  |   delete_member_days: string | ||||||
|  |   /** number of members removed by the prune */ | ||||||
|  |   members_removed: string | ||||||
|  |   /** channel in which the entities were targeted */ | ||||||
|  |   channel_id: string | ||||||
|  |   /** id of the message that was targeted */ | ||||||
|  |   message_id: string | ||||||
|  |   /** number of entities that were targeted */ | ||||||
|  |   count: string | ||||||
|  |   /** id of the overwritten entity */ | ||||||
|  |   id: string | ||||||
|  |   /** type of overwritten entity - "0" for "role" or "1" for "member" */ | ||||||
|  |   type: string | ||||||
|  |   /** name of the role if type is "0" (not present if type is "1") */ | ||||||
|  |   role_name: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** > info | ||||||
|  | > If `new_value` is not present in the change object, while `old_value` is, that means the property that was changed has been reset, or set to `null` */ | ||||||
|  | export interface AuditLogChangePayload { | ||||||
|  |   /** new value of the key */ | ||||||
|  |   new_value?: any | ||||||
|  |   /** old value of the key */ | ||||||
|  |   old_value?: any | ||||||
|  |   /** name of audit log [change key](#DOCS_RESOURCES_AUDIT_LOG/audit-log-change-object-audit-log-change-key) */ | ||||||
|  |   key: string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -20,3 +20,20 @@ export interface PartialInvitePayload { | ||||||
|   channel: Channel |   channel: Channel | ||||||
|   guild?: Guild |   guild?: Guild | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | export interface InviteMetadataPayload { | ||||||
|  |   /** number of times this invite has been used */ | ||||||
|  |   uses: number | ||||||
|  |   /** max number of times this invite can be used */ | ||||||
|  |   max_uses: number | ||||||
|  |   /** duration (in seconds) after which the invite expires */ | ||||||
|  |   max_age: number | ||||||
|  |   /** whether this invite only grants temporary membership */ | ||||||
|  |   temporary: boolean | ||||||
|  |   /** when this invite was created */ | ||||||
|  |   created_at: Date | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export interface InviteWithMetadataPayload | ||||||
|  |   extends InvitePayload, | ||||||
|  |     InviteMetadataPayload {} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue