* 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>
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
/*
|
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
import { defineAsyncComponent } from 'vue';
|
|
import * as os from '@/os.js';
|
|
|
|
export type SystemWebhookEventType = 'abuseReport' | 'abuseReportResolved';
|
|
|
|
export type MkSystemWebhookEditorProps = {
|
|
mode: 'create' | 'edit';
|
|
id?: string;
|
|
requiredEvents?: SystemWebhookEventType[];
|
|
};
|
|
|
|
export type MkSystemWebhookResult = {
|
|
id?: string;
|
|
isActive: boolean;
|
|
name: string;
|
|
on: SystemWebhookEventType[];
|
|
url: string;
|
|
secret: string;
|
|
};
|
|
|
|
export async function showSystemWebhookEditorDialog(props: MkSystemWebhookEditorProps): Promise<MkSystemWebhookResult | null> {
|
|
const { dispose, result } = await new Promise<{ dispose: () => void, result: MkSystemWebhookResult | null }>(async resolve => {
|
|
const res = await os.popup(
|
|
defineAsyncComponent(() => import('@/components/MkSystemWebhookEditor.vue')),
|
|
props,
|
|
{
|
|
submitted: (ev: MkSystemWebhookResult) => {
|
|
resolve({ dispose: res.dispose, result: ev });
|
|
},
|
|
closed: () => {
|
|
resolve({ dispose: res.dispose, result: null });
|
|
},
|
|
},
|
|
);
|
|
});
|
|
|
|
dispose();
|
|
|
|
return result;
|
|
}
|