Skip to content

Commit 8bde491

Browse files
committed
Nam
1 parent 8ccdc9e commit 8bde491

5 files changed

Lines changed: 26 additions & 28 deletions

File tree

backend/src/plugin/moderation/command/action/unban.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { fetchUserCachedSupressed } from "#common/discord/cachedRequest.ts";
2-
import { formatRESTError, formatUserBold } from "#common/discord/format.ts";
3-
import { escapeMarkdown } from "#common/discord/markdown.ts";
2+
import { formatRESTError } from "#common/discord/format.ts";
43
import { OptionType } from "#plugin/core/public/command.ts";
54
import { defineCommand } from "#plugin/core/public/extensionPoints.ts";
65
import { permissionsGuard } from "#plugin/core/public/helper/commandGuards.ts";
@@ -9,7 +8,7 @@ import { MemberRanking } from "#plugin/moderation/config.ts";
98
import { formatModActionFailure, formatModActionSuccess } from "#plugin/moderation/helper/format.ts";
109
import { performModAction, type ModActionFailure } from "#plugin/moderation/helper/modAction.ts";
1110
import { moderationConfigStore } from "#plugin/moderation/index.ts";
12-
import { ModActionType, type ModAction, type ModActionSuccess } from "#plugin/moderation/public/modAction.ts";
11+
import { ModActionType, type ModAction, type CommitedModAction } from "#plugin/moderation/public/modAction.ts";
1312
import { DiscordRESTError, JSONErrorCodes } from "oceanic.js";
1413

1514
export default defineCommand({
@@ -33,14 +32,14 @@ export default defineCommand({
3332

3433
preRun: context => permissionsGuard(context, moderationConfigStore, permissions => permissions.unban),
3534
async run(context, args) {
36-
const successful: ModActionSuccess[] = [];
35+
const successful: CommitedModAction[] = [];
3736
const unsuccessful: ModActionFailure[] = [];
3837

3938
for (const target of args.user) {
4039
const cachedMember = context.guild.members.get(target);
4140
if (cachedMember !== undefined) {
4241
unsuccessful.push({
43-
user: cachedMember.user,
42+
target: cachedMember.user,
4443
error: "User is not banned",
4544
});
4645
continue;
@@ -54,7 +53,7 @@ export default defineCommand({
5453

5554
if (error.code === JSONErrorCodes.UNKNOWN_BAN) {
5655
unsuccessful.push({
57-
user: await fetchUserCachedSupressed(target),
56+
target: await fetchUserCachedSupressed(target),
5857
error: "User is not banned",
5958
});
6059
} else {
@@ -63,7 +62,7 @@ export default defineCommand({
6362
: await fetchUserCachedSupressed(target);
6463

6564
unsuccessful.push({
66-
user,
65+
target: user,
6766
error: `Ban fetch failed: ${formatRESTError(error)}`,
6867
});
6968
}

backend/src/plugin/moderation/helper/format.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ import { formatUserBold, formatUserBoldByID, formatUserByID, formatUserTagByID }
22
import { escapeMarkdown, makeMarkdownQuote } from "#common/discord/markdown.ts";
33
import { dateToUnixSecs, humanizeDuration } from "#common/time.ts";
44
import type { ModActionFailure } from "#plugin/moderation/helper/modAction.ts";
5-
import { ModActionType, type ModActionSuccess } from "#plugin/moderation/public/modAction.ts";
5+
import { ModActionType, type CommitedModAction } from "#plugin/moderation/public/modAction.ts";
66
import { type CaseInfo } from "#plugin/moderation/storage/cases.ts";
77

8-
export function formatModActionSuccess(result: ModActionSuccess): string {
9-
return `${formatUserBold(result.action.target)} ${result.dmDelivered ? "with direct message " : ""}(case #${result.caseNumber})`;
8+
export function formatModActionSuccess(result: CommitedModAction): string {
9+
return `${formatUserBold(result.target)} ${result.dmDelivered ? "with direct message " : ""}(case #${result.caseNumber})`;
1010
}
1111

1212
export function formatModActionFailure(result: ModActionFailure): string {
13-
return `${formatUserBold(result.user)}: ${escapeMarkdown(result.error)}`;
13+
return `${formatUserBold(result.target)}: ${escapeMarkdown(result.error)}`;
1414
}
1515

1616
function caseExpired(info: CaseInfo, date: number = Date.now()): boolean {

backend/src/plugin/moderation/helper/modAction.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import { getHighestRole } from "#common/discord/permissions.ts";
44
import { resolveGroups } from "#plugin/core/public/permissionResolution.ts";
55
import { MemberRanking } from "#plugin/moderation/config.ts";
66
import { onModAction } from "#plugin/moderation/public/extensionPoints.ts";
7-
import { ModActionType, type ModAction, type ModActionSuccess } from "#plugin/moderation/public/modAction.ts";
7+
import { ModActionType, type ModAction, type CommitedModAction } from "#plugin/moderation/public/modAction.ts";
88
import { createCase } from "#plugin/moderation/storage/cases.ts";
99
import { DiscordRESTError, Guild, Member, Permissions, User, type Uncached } from "oceanic.js";
1010

11-
export type ModActionResult = ModActionSuccess | ModActionFailure;
11+
export type ModActionResult = CommitedModAction | ModActionFailure;
1212

1313
export interface ModActionFailure {
14-
user: User | Member | Uncached;
14+
target: User | Member | Uncached;
1515
error: string;
1616
}
1717

@@ -20,10 +20,10 @@ export async function performModAction(action: ModAction): Promise<ModActionResu
2020

2121
if (action.target instanceof Member) {
2222
if (!canModerate(action.ranking, action.actor, action.target))
23-
return { user: action.target, error: "You lack permission to moderate the user" };
23+
return { target: action.target, error: "You lack permission to moderate the user" };
2424

2525
if (botNeedsPerm(action.type) && !canModerate(MemberRanking.HighestRole, action.guild.clientMember, action.target))
26-
return { user: action.target, error: "App lacks permission to moderate the user" };
26+
return { target: action.target, error: "App lacks permission to moderate the user" };
2727

2828
if (action.directMessage !== undefined && !action.target.bot) {
2929
const dmChannel = await createDMCached(action.target.id);
@@ -50,10 +50,10 @@ export async function performModAction(action: ModAction): Promise<ModActionResu
5050
break;
5151
case ModActionType.Timeout:
5252
if (!(action.target instanceof Member))
53-
return { user: action.target, error: ERR_NOT_A_MEMBER };
53+
return { target: action.target, error: ERR_NOT_A_MEMBER };
5454

5555
if (action.target.permissions.has(Permissions.ADMINISTRATOR))
56-
return { user: action.target, error: "Member has admin permissions" };
56+
return { target: action.target, error: "Member has admin permissions" };
5757

5858
await action.target.edit({
5959
communicationDisabledUntil: action.expiresAt?.toISOString() ?? null,
@@ -62,7 +62,7 @@ export async function performModAction(action: ModAction): Promise<ModActionResu
6262
break;
6363
case ModActionType.ClearTimeout:
6464
if (!(action.target instanceof Member))
65-
return { user: action.target, error: ERR_NOT_A_MEMBER };
65+
return { target: action.target, error: ERR_NOT_A_MEMBER };
6666

6767
await action.target.edit({
6868
communicationDisabledUntil: null,
@@ -71,7 +71,7 @@ export async function performModAction(action: ModAction): Promise<ModActionResu
7171
break;
7272
case ModActionType.Kick:
7373
if (!(action.target instanceof Member))
74-
return { user: action.target, error: ERR_NOT_A_MEMBER };
74+
return { target: action.target, error: ERR_NOT_A_MEMBER };
7575

7676
await action.target.kick();
7777
break;
@@ -89,11 +89,11 @@ export async function performModAction(action: ModAction): Promise<ModActionResu
8989
if (!(error instanceof DiscordRESTError))
9090
throw error;
9191

92-
return { user: action.target, error: formatRESTError(error) };
92+
return { target: action.target, error: formatRESTError(error) };
9393
}
9494

9595
const caseNumber = await createCase(action.guild.id, action, dmDelivered);
96-
const result = { action, caseNumber, dmDelivered };
96+
const result = { ...action, caseNumber, dmDelivered };
9797

9898
await onModAction.fire(result);
9999

@@ -132,7 +132,7 @@ function canModerate(ranking: MemberRanking, actor: Member, target: Member): boo
132132
}
133133

134134
export interface BulkModActionResult {
135-
successful: ModActionSuccess[];
135+
successful: CommitedModAction[];
136136
unsuccessful: ModActionFailure[];
137137
}
138138

@@ -160,7 +160,7 @@ export async function performModActions(
160160
throw error;
161161

162162
result.unsuccessful.push({
163-
user: { id },
163+
target: { id },
164164
error: "User fetch failed: " + formatRESTError(error)
165165
});
166166
continue;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
import { makeEventExtensionPoint } from "#loader/extensionPoint.ts";
2-
import type { ModActionSuccess } from "./modAction.ts";
2+
import type { CommitedModAction } from "./modAction.ts";
33

4-
export const onModAction = makeEventExtensionPoint<ModActionSuccess>();
4+
export const onModAction = makeEventExtensionPoint<CommitedModAction>();

backend/src/plugin/moderation/public/modAction.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ export interface ModAction {
5555
directMessage?: CreateMessageOptions;
5656
}
5757

58-
export interface ModActionSuccess {
59-
action: ModAction;
58+
export interface CommitedModAction extends ModAction {
6059
caseNumber?: number;
6160
dmDelivered: boolean;
6261
}

0 commit comments

Comments
 (0)