bug fix (#13466)
We should not enqueue jobs "unmatch participants" with empty email. This was done because of deleting persons while persons may have empty emails Fixes https://github.com/twentyhq/twenty/issues/13462
This commit is contained in:
@ -129,16 +129,18 @@ export class CalendarEventParticipantPersonListener {
|
|||||||
const { addedAdditionalEmails, removedAdditionalEmails } =
|
const { addedAdditionalEmails, removedAdditionalEmails } =
|
||||||
computeChangedAdditionalEmails(eventPayload.properties.diff);
|
computeChangedAdditionalEmails(eventPayload.properties.diff);
|
||||||
|
|
||||||
const removedEmailPromises = removedAdditionalEmails.map((email) =>
|
const removedEmailPromises = removedAdditionalEmails
|
||||||
this.messageQueueService.add<CalendarEventParticipantUnmatchParticipantJobData>(
|
?.filter((email: string) => isDefined(email))
|
||||||
CalendarEventParticipantUnmatchParticipantJob.name,
|
.map((email) =>
|
||||||
{
|
this.messageQueueService.add<CalendarEventParticipantUnmatchParticipantJobData>(
|
||||||
workspaceId: payload.workspaceId,
|
CalendarEventParticipantUnmatchParticipantJob.name,
|
||||||
email: email,
|
{
|
||||||
personId: eventPayload.recordId,
|
workspaceId: payload.workspaceId,
|
||||||
},
|
email: email,
|
||||||
),
|
personId: eventPayload.recordId,
|
||||||
);
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
const addedEmailPromises = addedAdditionalEmails.map((email) =>
|
const addedEmailPromises = addedAdditionalEmails.map((email) =>
|
||||||
this.messageQueueService.add<CalendarEventParticipantMatchParticipantJobData>(
|
this.messageQueueService.add<CalendarEventParticipantMatchParticipantJobData>(
|
||||||
@ -166,29 +168,33 @@ export class CalendarEventParticipantPersonListener {
|
|||||||
>,
|
>,
|
||||||
) {
|
) {
|
||||||
for (const eventPayload of payload.events) {
|
for (const eventPayload of payload.events) {
|
||||||
await this.messageQueueService.add<CalendarEventParticipantUnmatchParticipantJobData>(
|
if (isDefined(eventPayload.properties.before.emails?.primaryEmail)) {
|
||||||
CalendarEventParticipantUnmatchParticipantJob.name,
|
await this.messageQueueService.add<CalendarEventParticipantUnmatchParticipantJobData>(
|
||||||
{
|
CalendarEventParticipantUnmatchParticipantJob.name,
|
||||||
workspaceId: payload.workspaceId,
|
{
|
||||||
email: eventPayload.properties.before.emails?.primaryEmail,
|
workspaceId: payload.workspaceId,
|
||||||
personId: eventPayload.recordId,
|
email: eventPayload.properties.before.emails?.primaryEmail,
|
||||||
},
|
personId: eventPayload.recordId,
|
||||||
);
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
const additionalEmails =
|
const additionalEmails =
|
||||||
eventPayload.properties.before.emails?.additionalEmails;
|
eventPayload.properties.before.emails?.additionalEmails;
|
||||||
|
|
||||||
if (Array.isArray(additionalEmails)) {
|
if (Array.isArray(additionalEmails)) {
|
||||||
const additionalEmailPromises = additionalEmails.map((email) =>
|
const additionalEmailPromises = additionalEmails
|
||||||
this.messageQueueService.add<CalendarEventParticipantUnmatchParticipantJobData>(
|
?.filter((email: string) => isDefined(email))
|
||||||
CalendarEventParticipantUnmatchParticipantJob.name,
|
.map((email) =>
|
||||||
{
|
this.messageQueueService.add<CalendarEventParticipantUnmatchParticipantJobData>(
|
||||||
workspaceId: payload.workspaceId,
|
CalendarEventParticipantUnmatchParticipantJob.name,
|
||||||
email: email,
|
{
|
||||||
personId: eventPayload.recordId,
|
workspaceId: payload.workspaceId,
|
||||||
},
|
email: email,
|
||||||
),
|
personId: eventPayload.recordId,
|
||||||
);
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
await Promise.all(additionalEmailPromises);
|
await Promise.all(additionalEmailPromises);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user