61fae45390
* feat: 通報を受けた際にメールまたはWebhookで通知を送出出来るようにする
* モデログに対応&エンドポイントを単一オブジェクトでのサポートに変更(API経由で大量に作るシチュエーションもないと思うので)
* fix spdx
* fix migration
* fix migration
* fix models
* add e2e webhook
* tweak
* fix modlog
* fix bugs
* add tests and fix bugs
* add tests and fix bugs
* add tests
* fix path
* regenerate locale
* 混入除去
* 混入除去
* add abuseReportResolved
* fix pnpm-lock.yaml
* add abuseReportResolved test
* fix bugs
* fix ui
* add tests
* fix CHANGELOG.md
* add tests
* add RoleService.getModeratorIds tests
* WebhookServiceをUserとSystemに分割
* fix CHANGELOG.md
* fix test
* insertOneを使う用に
* fix
* regenerate locales
* revert version
* separate webhook job queue
* fix
* 🎨
* Update QueueProcessorService.ts
---------
Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
62 lines
3.2 KiB
JavaScript
62 lines
3.2 KiB
JavaScript
/*
|
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
export class AbuseReportNotification1713656541000 {
|
|
name = 'AbuseReportNotification1713656541000'
|
|
|
|
async up(queryRunner) {
|
|
await queryRunner.query(`
|
|
CREATE TABLE "system_webhook" (
|
|
"id" varchar(32) NOT NULL,
|
|
"isActive" boolean NOT NULL DEFAULT true,
|
|
"updatedAt" timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"latestSentAt" timestamp with time zone NULL DEFAULT NULL,
|
|
"latestStatus" integer NULL DEFAULT NULL,
|
|
"name" varchar(255) NOT NULL,
|
|
"on" varchar(128) [] NOT NULL DEFAULT '{}'::character varying[],
|
|
"url" varchar(1024) NOT NULL,
|
|
"secret" varchar(1024) NOT NULL,
|
|
CONSTRAINT "PK_system_webhook_id" PRIMARY KEY ("id")
|
|
);
|
|
CREATE INDEX "IDX_system_webhook_isActive" ON "system_webhook" ("isActive");
|
|
CREATE INDEX "IDX_system_webhook_on" ON "system_webhook" USING gin ("on");
|
|
|
|
CREATE TABLE "abuse_report_notification_recipient" (
|
|
"id" varchar(32) NOT NULL,
|
|
"isActive" boolean NOT NULL DEFAULT true,
|
|
"updatedAt" timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"name" varchar(255) NOT NULL,
|
|
"method" varchar(64) NOT NULL,
|
|
"userId" varchar(32) NULL DEFAULT NULL,
|
|
"systemWebhookId" varchar(32) NULL DEFAULT NULL,
|
|
CONSTRAINT "PK_abuse_report_notification_recipient_id" PRIMARY KEY ("id"),
|
|
CONSTRAINT "FK_abuse_report_notification_recipient_userId1" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION,
|
|
CONSTRAINT "FK_abuse_report_notification_recipient_userId2" FOREIGN KEY ("userId") REFERENCES "user_profile"("userId") ON DELETE CASCADE ON UPDATE NO ACTION,
|
|
CONSTRAINT "FK_abuse_report_notification_recipient_systemWebhookId" FOREIGN KEY ("systemWebhookId") REFERENCES "system_webhook"("id") ON DELETE CASCADE ON UPDATE NO ACTION
|
|
);
|
|
CREATE INDEX "IDX_abuse_report_notification_recipient_isActive" ON "abuse_report_notification_recipient" ("isActive");
|
|
CREATE INDEX "IDX_abuse_report_notification_recipient_method" ON "abuse_report_notification_recipient" ("method");
|
|
CREATE INDEX "IDX_abuse_report_notification_recipient_userId" ON "abuse_report_notification_recipient" ("userId");
|
|
CREATE INDEX "IDX_abuse_report_notification_recipient_systemWebhookId" ON "abuse_report_notification_recipient" ("systemWebhookId");
|
|
`);
|
|
}
|
|
|
|
async down(queryRunner) {
|
|
await queryRunner.query(`
|
|
ALTER TABLE "abuse_report_notification_recipient" DROP CONSTRAINT "FK_abuse_report_notification_recipient_userId1";
|
|
ALTER TABLE "abuse_report_notification_recipient" DROP CONSTRAINT "FK_abuse_report_notification_recipient_userId2";
|
|
ALTER TABLE "abuse_report_notification_recipient" DROP CONSTRAINT "FK_abuse_report_notification_recipient_systemWebhookId";
|
|
DROP INDEX "IDX_abuse_report_notification_recipient_isActive";
|
|
DROP INDEX "IDX_abuse_report_notification_recipient_method";
|
|
DROP INDEX "IDX_abuse_report_notification_recipient_userId";
|
|
DROP INDEX "IDX_abuse_report_notification_recipient_systemWebhookId";
|
|
DROP TABLE "abuse_report_notification_recipient";
|
|
|
|
DROP INDEX "IDX_system_webhook_isActive";
|
|
DROP INDEX "IDX_system_webhook_on";
|
|
DROP TABLE "system_webhook";
|
|
`);
|
|
}
|
|
}
|