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
|
||||
} from './types.ts'
|
||||
import { Constants } from '../types/constants.ts'
|
||||
import { RESTEndpoints } from './endpoints.ts'
|
||||
|
||||
export class DiscordAPIError extends Error {
|
||||
name = 'DiscordAPIError'
|
||||
|
@ -171,6 +172,7 @@ export class RESTManager {
|
|||
canary?: boolean
|
||||
/** Optional Harmony Client object */
|
||||
client?: Client
|
||||
endpoints: RESTEndpoints
|
||||
|
||||
constructor(options?: RESTOptions) {
|
||||
this.api = builder(this)
|
||||
|
@ -181,6 +183,7 @@ export class RESTManager {
|
|||
if (options?.userAgent !== undefined) this.userAgent = options.userAgent
|
||||
if (options?.canary !== undefined) this.canary = options.canary
|
||||
if (options?.client !== undefined) this.client = options.client
|
||||
this.endpoints = new RESTEndpoints(this)
|
||||
this.handleRateLimits()
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ export interface GuildChannelPayload extends ChannelPayload {
|
|||
|
||||
export interface GuildTextBasedChannelPayload
|
||||
extends TextChannelPayload,
|
||||
GuildChannelPayload {
|
||||
GuildChannelPayload {
|
||||
topic?: string
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,7 @@ export interface GuildTextChannelPayload extends GuildTextBasedChannelPayload {
|
|||
rate_limit_per_user: number
|
||||
}
|
||||
|
||||
export interface GuildNewsChannelPayload extends GuildTextBasedChannelPayload { }
|
||||
export interface GuildNewsChannelPayload extends GuildTextBasedChannelPayload {}
|
||||
|
||||
export interface GuildVoiceChannelPayload extends GuildChannelPayload {
|
||||
bitrate: string
|
||||
|
@ -56,7 +56,7 @@ export interface GroupDMChannelPayload extends DMChannelPayload {
|
|||
|
||||
export interface GuildCategoryChannelPayload
|
||||
extends ChannelPayload,
|
||||
GuildChannelPayload { }
|
||||
GuildChannelPayload {}
|
||||
|
||||
export interface ModifyChannelPayload {
|
||||
name?: string
|
||||
|
@ -67,7 +67,7 @@ export interface ModifyChannelPayload {
|
|||
}
|
||||
|
||||
export interface ModifyGuildCategoryChannelPayload
|
||||
extends ModifyChannelPayload { }
|
||||
extends ModifyChannelPayload {}
|
||||
|
||||
export interface ModifyGuildTextBasedChannelPayload
|
||||
extends ModifyChannelPayload {
|
||||
|
@ -81,7 +81,7 @@ export interface ModifyGuildTextChannelPayload
|
|||
}
|
||||
|
||||
export interface ModifyGuildNewsChannelPayload
|
||||
extends ModifyGuildTextBasedChannelPayload { }
|
||||
extends ModifyGuildTextBasedChannelPayload {}
|
||||
|
||||
export interface ModifyVoiceChannelPayload extends ModifyChannelPayload {
|
||||
bitrate?: number | null
|
||||
|
@ -96,7 +96,7 @@ export interface ModifyChannelOption {
|
|||
nsfw?: boolean | null
|
||||
}
|
||||
|
||||
export interface ModifyGuildCategoryChannelOption extends ModifyChannelOption { }
|
||||
export interface ModifyGuildCategoryChannelOption extends ModifyChannelOption {}
|
||||
|
||||
export interface ModifyGuildTextBasedChannelOption extends ModifyChannelOption {
|
||||
type?: number
|
||||
|
@ -109,7 +109,7 @@ export interface ModifyGuildTextChannelOption
|
|||
}
|
||||
|
||||
export interface ModifyGuildNewsChannelOption
|
||||
extends ModifyGuildTextBasedChannelOption { }
|
||||
extends ModifyGuildTextBasedChannelOption {}
|
||||
|
||||
export interface ModifyVoiceChannelOption extends ModifyChannelOption {
|
||||
bitrate?: number | null
|
||||
|
@ -382,3 +382,32 @@ export interface MessageInteractionPayload {
|
|||
name: string
|
||||
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
|
||||
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 { UserPayload } from './user.ts'
|
||||
import { VoiceStatePayload } from './voice.ts'
|
||||
import { WebhookPayload } from './webhook.ts'
|
||||
|
||||
export interface GuildPayload {
|
||||
id: string
|
||||
|
@ -326,3 +327,99 @@ export interface GuildBeginPrunePayload {
|
|||
compute_prune_count?: boolean
|
||||
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
|
||||
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…
Reference in a new issue