summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/SystemWebhookService.ts
diff options
context:
space:
mode:
authormisskey-release-bot[bot] <157398866+misskey-release-bot[bot]@users.noreply.github.com>2024-11-22 09:15:34 +0000
committerGitHub <noreply@github.com>2024-11-22 09:15:34 +0000
commite8518de054166e8293059a2f9d285718c6316f38 (patch)
treea416a001115f7478e3a4788abcd59b1b3c0af7c3 /packages/backend/src/core/SystemWebhookService.ts
parentMerge pull request #14741 from misskey-dev/develop (diff)
parentRelease: 2024.11.0 (diff)
downloadmisskey-e8518de054166e8293059a2f9d285718c6316f38.tar.gz
misskey-e8518de054166e8293059a2f9d285718c6316f38.tar.bz2
misskey-e8518de054166e8293059a2f9d285718c6316f38.zip
Merge pull request #14924 from misskey-dev/develop
Release: 2024.11.0
Diffstat (limited to 'packages/backend/src/core/SystemWebhookService.ts')
-rw-r--r--packages/backend/src/core/SystemWebhookService.ts33
1 files changed, 32 insertions, 1 deletions
diff --git a/packages/backend/src/core/SystemWebhookService.ts b/packages/backend/src/core/SystemWebhookService.ts
index db6407dcb3..de00169612 100644
--- a/packages/backend/src/core/SystemWebhookService.ts
+++ b/packages/backend/src/core/SystemWebhookService.ts
@@ -15,8 +15,39 @@ import { QueueService } from '@/core/QueueService.js';
import { ModerationLogService } from '@/core/ModerationLogService.js';
import { LoggerService } from '@/core/LoggerService.js';
import Logger from '@/logger.js';
+import { Packed } from '@/misc/json-schema.js';
+import { AbuseReportResolveType } from '@/models/AbuseUserReport.js';
+import { ModeratorInactivityRemainingTime } from '@/queue/processors/CheckModeratorsActivityProcessorService.js';
import type { OnApplicationShutdown } from '@nestjs/common';
+export type AbuseReportPayload = {
+ id: string;
+ targetUserId: string;
+ targetUser: Packed<'UserLite'> | null;
+ targetUserHost: string | null;
+ reporterId: string;
+ reporter: Packed<'UserLite'> | null;
+ reporterHost: string | null;
+ assigneeId: string | null;
+ assignee: Packed<'UserLite'> | null;
+ resolved: boolean;
+ forwarded: boolean;
+ comment: string;
+ moderationNote: string;
+ resolvedAs: AbuseReportResolveType | null;
+};
+
+export type InactiveModeratorsWarningPayload = {
+ remainingTime: ModeratorInactivityRemainingTime;
+};
+
+export type SystemWebhookPayload<T extends SystemWebhookEventType> =
+ T extends 'abuseReport' | 'abuseReportResolved' ? AbuseReportPayload :
+ T extends 'userCreated' ? Packed<'UserLite'> :
+ T extends 'inactiveModeratorsWarning' ? InactiveModeratorsWarningPayload :
+ T extends 'inactiveModeratorsInvitationOnlyChanged' ? Record<string, never> :
+ never;
+
@Injectable()
export class SystemWebhookService implements OnApplicationShutdown {
private logger: Logger;
@@ -168,7 +199,7 @@ export class SystemWebhookService implements OnApplicationShutdown {
public async enqueueSystemWebhook<T extends SystemWebhookEventType>(
webhook: MiSystemWebhook | MiSystemWebhook['id'],
type: T,
- content: unknown,
+ content: SystemWebhookPayload<T>,
) {
const webhookEntity = typeof webhook === 'string'
? (await this.fetchActiveSystemWebhooks()).find(a => a.id === webhook)