fix(server): send declined email (#9188)

This commit is contained in:
DarkSky
2024-12-17 18:15:43 +08:00
committed by GitHub
parent b0e64fe516
commit e3f922bfac
5 changed files with 21 additions and 13 deletions

View File

@@ -5,7 +5,10 @@ import { Flatten, Payload } from './types';
export interface WorkspaceEvents {
members: {
reviewRequested: Payload<{ inviteId: string }>;
requestDeclined: Payload<{ inviteId: string }>;
requestDeclined: Payload<{
userId: User['id'];
workspaceId: Workspace['id'];
}>;
requestApproved: Payload<{ inviteId: string }>;
updated: Payload<{ workspaceId: Workspace['id']; count: number }>;
};

View File

@@ -470,7 +470,8 @@ export class PermissionService {
permission.status === 'NeedMoreSeatAndReview'
) {
this.event.emit('workspace.members.requestDeclined', {
inviteId: permission.id,
userId: user,
workspaceId,
});
}

View File

@@ -159,14 +159,12 @@ export class WorkspaceService {
await this.mailer.sendReviewApproveEmail(target.email, target.workspace);
}
async sendReviewDeclinedEmail(inviteId: string) {
const target = await this.getInviteeEmailTarget(inviteId);
if (!target) {
return;
}
await this.mailer.sendReviewDeclinedEmail(target.email, target.workspace);
async sendReviewDeclinedEmail(
email: string | undefined,
workspaceName: string
) {
if (!email) return;
await this.mailer.sendReviewDeclinedEmail(email, { name: workspaceName });
}
private async getInviteeEmailTarget(inviteId: string) {

View File

@@ -334,10 +334,16 @@ export class TeamWorkspaceResolver {
@OnEvent('workspace.members.requestDeclined')
async onDeclineRequest({
inviteId,
userId,
workspaceId,
}: EventPayload<'workspace.members.requestDeclined'>) {
const user = await this.users.findUserById(userId);
const workspace = await this.workspaceService.getWorkspaceInfo(workspaceId);
// send decline mail
await this.workspaceService.sendReviewDeclinedEmail(inviteId);
await this.workspaceService.sendReviewDeclinedEmail(
user?.email,
workspace.name
);
}
@OnEvent('workspace.members.requestApproved')