Skip to content
/ core Public

Commit 2833c38

Browse files
committed
fix(webhook): enrich comment payload author and avatar
1 parent 4267473 commit 2833c38

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

apps/core/src/processors/helper/helper.event-payload.service.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@ import { Injectable } from '@nestjs/common'
22

33
import { BusinessEvents } from '~/constants/business-event.constant'
44
import { NoteModel } from '~/modules/note/note.model'
5+
import { OwnerService } from '~/modules/owner/owner.service'
56
import { PageModel } from '~/modules/page/page.model'
67
import { PostModel } from '~/modules/post/post.model'
8+
import { ReaderService } from '~/modules/reader/reader.service'
79
import { InjectModel } from '~/transformers/model.transformer'
10+
import { getAvatar } from '~/utils/tool.util'
811

912
@Injectable()
1013
export class EventPayloadEnricherService {
@@ -15,8 +18,40 @@ export class EventPayloadEnricherService {
1518
private readonly noteModel: MongooseModel<NoteModel>,
1619
@InjectModel(PageModel)
1720
private readonly pageModel: MongooseModel<PageModel>,
21+
private readonly readerService: ReaderService,
22+
private readonly ownerService: OwnerService,
1823
) {}
1924

25+
private async enrichCommentPayload(data: any): Promise<any> {
26+
if (!data?.readerId) {
27+
return data
28+
}
29+
30+
const reader = await this.readerService
31+
.findReaderInIds([data.readerId])
32+
.then((readers) => readers[0] ?? null)
33+
34+
if (!reader) {
35+
return data
36+
}
37+
38+
if (reader.role === 'owner') {
39+
const owner = await this.ownerService.getOwner().catch(() => null)
40+
41+
return {
42+
...data,
43+
author: owner?.name || reader.name || data.author,
44+
avatar: owner?.avatar || reader.image || getAvatar(reader.email),
45+
}
46+
}
47+
48+
return {
49+
...data,
50+
author: reader.name || data.author,
51+
avatar: reader.image || data.avatar || getAvatar(reader.email),
52+
}
53+
}
54+
2055
async enrichPayload(event: BusinessEvents, data: any): Promise<any> {
2156
if (!data?.id) return data
2257

@@ -55,6 +90,9 @@ export class EventPayloadEnricherService {
5590
data
5691
)
5792
}
93+
case BusinessEvents.COMMENT_CREATE: {
94+
return this.enrichCommentPayload(data)
95+
}
5896
default: {
5997
return data
6098
}

apps/core/src/processors/helper/helper.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { AiModule } from '~/modules/ai/ai.module'
1010
import { NoteModule } from '~/modules/note/note.module'
1111
import { PageModule } from '~/modules/page/page.module'
1212
import { PostModule } from '~/modules/post/post.module'
13+
import { ReaderModule } from '~/modules/reader/reader.module'
1314

1415
import { AssetService } from './helper.asset.service'
1516
import { BarkPushService } from './helper.bark.service'
@@ -66,6 +67,7 @@ const providers: Provider<any>[] = [
6667
forwardRef(() => PostModule),
6768
forwardRef(() => NoteModule),
6869
forwardRef(() => PageModule),
70+
forwardRef(() => ReaderModule),
6971
],
7072
providers,
7173
exports: providers,

0 commit comments

Comments
 (0)