fix(server): send declined email (#9188)
This commit is contained in:
@@ -5,7 +5,10 @@ import { Flatten, Payload } from './types';
|
|||||||
export interface WorkspaceEvents {
|
export interface WorkspaceEvents {
|
||||||
members: {
|
members: {
|
||||||
reviewRequested: Payload<{ inviteId: string }>;
|
reviewRequested: Payload<{ inviteId: string }>;
|
||||||
requestDeclined: Payload<{ inviteId: string }>;
|
requestDeclined: Payload<{
|
||||||
|
userId: User['id'];
|
||||||
|
workspaceId: Workspace['id'];
|
||||||
|
}>;
|
||||||
requestApproved: Payload<{ inviteId: string }>;
|
requestApproved: Payload<{ inviteId: string }>;
|
||||||
updated: Payload<{ workspaceId: Workspace['id']; count: number }>;
|
updated: Payload<{ workspaceId: Workspace['id']; count: number }>;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -470,7 +470,8 @@ export class PermissionService {
|
|||||||
permission.status === 'NeedMoreSeatAndReview'
|
permission.status === 'NeedMoreSeatAndReview'
|
||||||
) {
|
) {
|
||||||
this.event.emit('workspace.members.requestDeclined', {
|
this.event.emit('workspace.members.requestDeclined', {
|
||||||
inviteId: permission.id,
|
userId: user,
|
||||||
|
workspaceId,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -159,14 +159,12 @@ export class WorkspaceService {
|
|||||||
await this.mailer.sendReviewApproveEmail(target.email, target.workspace);
|
await this.mailer.sendReviewApproveEmail(target.email, target.workspace);
|
||||||
}
|
}
|
||||||
|
|
||||||
async sendReviewDeclinedEmail(inviteId: string) {
|
async sendReviewDeclinedEmail(
|
||||||
const target = await this.getInviteeEmailTarget(inviteId);
|
email: string | undefined,
|
||||||
|
workspaceName: string
|
||||||
if (!target) {
|
) {
|
||||||
return;
|
if (!email) return;
|
||||||
}
|
await this.mailer.sendReviewDeclinedEmail(email, { name: workspaceName });
|
||||||
|
|
||||||
await this.mailer.sendReviewDeclinedEmail(target.email, target.workspace);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async getInviteeEmailTarget(inviteId: string) {
|
private async getInviteeEmailTarget(inviteId: string) {
|
||||||
|
|||||||
@@ -334,10 +334,16 @@ export class TeamWorkspaceResolver {
|
|||||||
|
|
||||||
@OnEvent('workspace.members.requestDeclined')
|
@OnEvent('workspace.members.requestDeclined')
|
||||||
async onDeclineRequest({
|
async onDeclineRequest({
|
||||||
inviteId,
|
userId,
|
||||||
|
workspaceId,
|
||||||
}: EventPayload<'workspace.members.requestDeclined'>) {
|
}: EventPayload<'workspace.members.requestDeclined'>) {
|
||||||
|
const user = await this.users.findUserById(userId);
|
||||||
|
const workspace = await this.workspaceService.getWorkspaceInfo(workspaceId);
|
||||||
// send decline mail
|
// send decline mail
|
||||||
await this.workspaceService.sendReviewDeclinedEmail(inviteId);
|
await this.workspaceService.sendReviewDeclinedEmail(
|
||||||
|
user?.email,
|
||||||
|
workspace.name
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnEvent('workspace.members.requestApproved')
|
@OnEvent('workspace.members.requestApproved')
|
||||||
|
|||||||
@@ -674,7 +674,7 @@ test('should be able to emit events', async t => {
|
|||||||
event.emit.lastCall.args,
|
event.emit.lastCall.args,
|
||||||
[
|
[
|
||||||
'workspace.members.requestDeclined',
|
'workspace.members.requestDeclined',
|
||||||
{ inviteId: memberInvite.inviteId },
|
{ userId: user.id, workspaceId: tws.id },
|
||||||
],
|
],
|
||||||
'should emit review requested event'
|
'should emit review requested event'
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user