Skip to content

Commit

Permalink
5187 delete all emails and events from a blocklisted domain name (#5190)
Browse files Browse the repository at this point in the history
Closes #5187
  • Loading branch information
bosiraphael authored Apr 26, 2024
1 parent 27cd577 commit 5e143f1
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -179,16 +179,25 @@ export class CalendarChannelEventAssociationRepository {
const dataSourceSchema =
this.workspaceDataSourceService.getSchemaName(workspaceId);

const isHandleDomain = calendarEventParticipantHandle.startsWith('@');

await this.workspaceDataSourceService.executeRawQuery(
`DELETE FROM ${dataSourceSchema}."calendarChannelEventAssociation"
WHERE "id" IN (
SELECT "calendarChannelEventAssociation"."id"
FROM ${dataSourceSchema}."calendarChannelEventAssociation" "calendarChannelEventAssociation"
JOIN ${dataSourceSchema}."calendarEvent" "calendarEvent" ON "calendarChannelEventAssociation"."calendarEventId" = "calendarEvent"."id"
JOIN ${dataSourceSchema}."calendarEventParticipant" "calendarEventParticipant" ON "calendarEvent"."id" = "calendarEventParticipant"."calendarEventId"
WHERE "calendarEventParticipant"."handle" = $1 AND "calendarChannelEventAssociation"."calendarChannelId" = ANY($2)
WHERE "calendarEventParticipant"."handle" ${
isHandleDomain ? 'ILIKE' : '='
} $1 AND "calendarChannelEventAssociation"."calendarChannelId" = ANY($2)
)`,
[calendarEventParticipantHandle, calendarChannelIds],
[
isHandleDomain
? `%${calendarEventParticipantHandle}`
: calendarEventParticipantHandle,
calendarChannelIds,
],
workspaceId,
transactionManager,
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,24 @@ export class MessageChannelMessageAssociationRepository {
const dataSourceSchema =
this.workspaceDataSourceService.getSchemaName(workspaceId);

const isHandleDomain = messageParticipantHandle.startsWith('@');

const messageChannelMessageAssociationIdsToDelete =
await this.workspaceDataSourceService.executeRawQuery(
`SELECT "messageChannelMessageAssociation".id
FROM ${dataSourceSchema}."messageChannelMessageAssociation" "messageChannelMessageAssociation"
JOIN ${dataSourceSchema}."message" ON "messageChannelMessageAssociation"."messageId" = ${dataSourceSchema}."message"."id"
JOIN ${dataSourceSchema}."messageParticipant" "messageParticipant" ON ${dataSourceSchema}."message"."id" = "messageParticipant"."messageId"
WHERE "messageParticipant"."handle" = $1 AND "messageParticipant"."role"= ANY($2) AND "messageChannelMessageAssociation"."messageChannelId" = ANY($3)`,
[messageParticipantHandle, rolesToDelete, messageChannelIds],
WHERE "messageParticipant"."handle" ${
isHandleDomain ? 'ILIKE' : '='
} $1 AND "messageParticipant"."role" = ANY($2) AND "messageChannelMessageAssociation"."messageChannelId" = ANY($3)`,
[
isHandleDomain
? `%${messageParticipantHandle}`
: messageParticipantHandle,
rolesToDelete,
messageChannelIds,
],
workspaceId,
transactionManager,
);
Expand Down

0 comments on commit 5e143f1

Please sign in to comment.