seyfert/src/structures/AutoModerationRule.ts
Marcos Susaña bd951397a2
feat: Reduce dependencies (#221)
* feat: add support for new Discord application emojis features

* feat: add support for new Discord application emojis features

* feat: applications emojis routes

* chore: switch typings provider

* fix: unnecesary type

* feat: magic bytes

* chore: move api-types

* chore: ?

* fix: omg npm

* chore: apply formatting

* fix: for fast merge

---------

Co-authored-by: Tony Supremacy <165050835+VanStk@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-21 22:58:40 -04:00

48 lines
1.7 KiB
TypeScript

import type { UsingClient } from '../commands';
import type { MethodContext, ObjectToLower } from '../common';
import type {
APIAutoModerationRule,
RESTPatchAPIAutoModerationRuleJSONBody,
RESTPostAPIAutoModerationRuleJSONBody,
} from '../types';
import { DiscordBase } from './extra/DiscordBase';
export interface AutoModerationRule extends ObjectToLower<APIAutoModerationRule> {}
export class AutoModerationRule extends DiscordBase<APIAutoModerationRule> {
constructor(client: UsingClient, data: APIAutoModerationRule) {
super(client, data);
}
fetchCreator(force = false) {
return this.client.members.fetch(this.guildId, this.creatorId, force);
}
guild(force = false) {
return this.client.guilds.fetch(this.guildId, force);
}
fetch() {
return this.client.guilds.moderation.fetch(this.guildId, this.id);
}
edit(body: RESTPatchAPIAutoModerationRuleJSONBody, reason?: string) {
return this.client.guilds.moderation.edit(this.guildId, this.id, body, reason);
}
delete(reason?: string) {
return this.client.guilds.moderation.delete(this.guildId, this.id, reason);
}
static methods({ client, guildId }: MethodContext<{ guildId: string }>) {
return {
list: () => client.guilds.moderation.list(guildId),
create: (body: RESTPostAPIAutoModerationRuleJSONBody) => client.guilds.moderation.create(guildId, body),
delete: (ruleId: string, reason?: string) => client.guilds.moderation.delete(guildId, ruleId, reason),
fetch: (ruleId: string) => client.guilds.moderation.fetch(guildId, ruleId),
edit: (ruleId: string, body: RESTPatchAPIAutoModerationRuleJSONBody, reason?: string) =>
client.guilds.moderation.edit(guildId, ruleId, body, reason),
};
}
}