diff --git a/packages/backend/src/core/QueueService.ts b/packages/backend/src/core/QueueService.ts index 595fe4102c..50f08da241 100644 --- a/packages/backend/src/core/QueueService.ts +++ b/packages/backend/src/core/QueueService.ts @@ -469,10 +469,10 @@ export class QueueService { * @see UserWebhookDeliverProcessorService */ @bindThis - public userWebhookDeliver( + public userWebhookDeliver( webhook: MiWebhook, - type: typeof webhookEventTypes[number], - content: UserWebhookPayload, + type: T, + content: UserWebhookPayload, opts?: { attempts?: number }, ) { const data: UserWebhookDeliverJobData = { diff --git a/packages/backend/src/core/UserWebhookService.ts b/packages/backend/src/core/UserWebhookService.ts index 2c1414f5af..7117a3d7fa 100644 --- a/packages/backend/src/core/UserWebhookService.ts +++ b/packages/backend/src/core/UserWebhookService.ts @@ -17,8 +17,11 @@ export type UserWebhookPayload = T extends 'note' | 'reply' | 'renote' |'mention' ? { note: Packed<'Note'>, } : - T extends 'follow' | 'followed' | 'unfollow' ? { - user: Packed<'User'>, + T extends 'follow' | 'unfollow' ? { + user: Packed<'UserDetailedNotMe'>, + } : + T extends 'followed' ? { + user: Packed<'UserLite'>, } : never; @Injectable() diff --git a/packages/backend/src/core/WebhookTestService.ts b/packages/backend/src/core/WebhookTestService.ts index 37452d9e94..b1ea7974fb 100644 --- a/packages/backend/src/core/WebhookTestService.ts +++ b/packages/backend/src/core/WebhookTestService.ts @@ -321,7 +321,7 @@ export class WebhookTestService { } const webhook = webhooks[0]; - const send = (contents: UserWebhookPayload) => { + const send = (type: U, contents: UserWebhookPayload) => { const merged = { ...webhook, ...params.override, @@ -329,7 +329,7 @@ export class WebhookTestService { // テスト目的なのでUserWebhookServiceの機能を経由せず直接キューに追加する(チェック処理などをスキップする意図). // また、Jobの試行回数も1回だけ. - this.queueService.userWebhookDeliver(merged, params.type, contents, { attempts: 1 }); + this.queueService.userWebhookDeliver(merged, type, contents, { attempts: 1 }); }; const dummyNote1 = generateDummyNote({ @@ -361,31 +361,31 @@ export class WebhookTestService { switch (params.type) { case 'note': { - send({ note: toPackedNote(dummyNote1) }); + send('note', { note: toPackedNote(dummyNote1) }); break; } case 'reply': { - send({ note: toPackedNote(dummyReply1) }); + send('reply', { note: toPackedNote(dummyReply1) }); break; } case 'renote': { - send({ note: toPackedNote(dummyRenote1) }); + send('renote', { note: toPackedNote(dummyRenote1) }); break; } case 'mention': { - send({ note: toPackedNote(dummyMention1) }); + send('mention', { note: toPackedNote(dummyMention1) }); break; } case 'follow': { - send({ user: toPackedUserDetailedNotMe(dummyUser1) }); + send('follow', { user: toPackedUserDetailedNotMe(dummyUser1) }); break; } case 'followed': { - send({ user: toPackedUserDetailedNotMe(dummyUser2) }); + send('followed', { user: toPackedUserLite(dummyUser2) }); break; } case 'unfollow': { - send({ user: toPackedUserDetailedNotMe(dummyUser3) }); + send('unfollow', { user: toPackedUserDetailedNotMe(dummyUser3) }); break; } // まだ実装されていない (#9485)