fix: 멤버 초대/역할변경/제거 알림에 actorName 누락 → '누군가' 표기 수정
ProjectMemberService 의 notify payload 에 actorName 이 빠져 있어, 프론트 notification.store 가 actorName 부재 시 '누군가'로 폴백하던 문제. 세 member.* 알림(invited/role_changed/removed) payload 에 actorName 추가 (actingUserId 로 사용자명 조회하는 actorName 헬퍼 신설). 활동 피드는 actor 관계로 별도 해결되므로 영향 없음. 런타임 검증: 초대 시 수신자 알림 payload.actorName = 초대자 이름으로 채워짐. 백엔드 build/lint 0·8 tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -120,7 +120,11 @@ export class ProjectMemberService {
|
||||
recipientIds: [user.id],
|
||||
actorId: actingUserId,
|
||||
type: 'member.invited',
|
||||
payload: { projectId: project.id, projectName: project.name },
|
||||
payload: {
|
||||
projectId: project.id,
|
||||
projectName: project.name,
|
||||
actorName: await this.actorName(actingUserId),
|
||||
},
|
||||
});
|
||||
return this.toResponse(saved);
|
||||
}
|
||||
@@ -160,6 +164,7 @@ export class ProjectMemberService {
|
||||
projectId: project.id,
|
||||
projectName: project.name,
|
||||
roleType: member.roleType,
|
||||
actorName: await this.actorName(actingUserId),
|
||||
},
|
||||
});
|
||||
return this.toResponse(member);
|
||||
@@ -194,7 +199,11 @@ export class ProjectMemberService {
|
||||
recipientIds: [targetUserId],
|
||||
actorId: actingUserId,
|
||||
type: 'member.removed',
|
||||
payload: { projectId: project.id, projectName: project.name },
|
||||
payload: {
|
||||
projectId: project.id,
|
||||
projectName: project.name,
|
||||
actorName: await this.actorName(actingUserId),
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -227,6 +236,12 @@ export class ProjectMemberService {
|
||||
return project;
|
||||
}
|
||||
|
||||
// 행위자 표시 이름 — 알림 payload 의 actorName 용. 없으면 '' (프론트가 '누군가'로 폴백)
|
||||
private async actorName(userId: string): Promise<string> {
|
||||
const user = await this.userService.findById(userId);
|
||||
return user?.name ?? '';
|
||||
}
|
||||
|
||||
private async getMemberOrThrow(
|
||||
projectId: string,
|
||||
userId: string,
|
||||
|
||||
Reference in New Issue
Block a user