From f5b6e943cb20a583e450d14b22f09e9912c3c8bb Mon Sep 17 00:00:00 2001 From: Mo Date: Sun, 4 Jun 2023 16:14:49 -0500 Subject: [PATCH] chore: add user event when vault is deleted --- .../src/Bootstrap/ServerContainerConfigLoader.ts | 1 + .../SharedVault/Service/SharedVaultService.ts | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/packages/syncing-server/src/Bootstrap/ServerContainerConfigLoader.ts b/packages/syncing-server/src/Bootstrap/ServerContainerConfigLoader.ts index d0db6ad26..21f6ad0f9 100644 --- a/packages/syncing-server/src/Bootstrap/ServerContainerConfigLoader.ts +++ b/packages/syncing-server/src/Bootstrap/ServerContainerConfigLoader.ts @@ -163,6 +163,7 @@ export class ServerContainerConfigLoader extends CommonContainerConfigLoader { context.container.get(TYPES.SharedVaultFactory), context.container.get(TYPES.SharedVaultUserService), context.container.get(TYPES.SharedVaultInviteService), + context.container.get(TYPES.UserEventService), context.container.get(TYPES.Timer), ) }) diff --git a/packages/syncing-server/src/Domain/SharedVault/Service/SharedVaultService.ts b/packages/syncing-server/src/Domain/SharedVault/Service/SharedVaultService.ts index 3aa5e28e4..4f5a40741 100644 --- a/packages/syncing-server/src/Domain/SharedVault/Service/SharedVaultService.ts +++ b/packages/syncing-server/src/Domain/SharedVault/Service/SharedVaultService.ts @@ -11,6 +11,7 @@ import { SharedVaultFactoryInterface } from '../Factory/SharedVaultFactoryInterf import { SharedVaultUserServiceInterface } from '../../SharedVaultUser/Service/SharedVaultUserServiceInterface' import { SharedVaultInviteServiceInterface } from '../../SharedVaultInvite/Service/SharedVaultInviteServiceInterface' import { v4 as uuidv4 } from 'uuid' +import { UserEventServiceInterface } from '../../UserEvent/Service/UserEventServiceInterface' export class SharedVaultService implements SharedVaultServiceInterface { constructor( @@ -18,6 +19,7 @@ export class SharedVaultService implements SharedVaultServiceInterface { private sharedVaultFactory: SharedVaultFactoryInterface, private sharedVaultUserService: SharedVaultUserServiceInterface, private sharedVaultInviteService: SharedVaultInviteServiceInterface, + private userEventService: UserEventServiceInterface, private timer: TimerInterface, ) {} @@ -89,6 +91,20 @@ export class SharedVaultService implements SharedVaultServiceInterface { await this.sharedVaultRepository.remove(sharedVault) + const vaultUsersResult = await this.sharedVaultUserService.getSharedVaultUsersForSharedVault({ + sharedVaultUuid: dto.sharedVaultUuid, + originatorUuid: dto.originatorUuid, + }) + + if (vaultUsersResult) { + for (const user of vaultUsersResult.users) { + await this.userEventService.createUserRemovedFromSharedVaultUserEvent({ + sharedVaultUuid: dto.sharedVaultUuid, + userUuid: user.userUuid, + }) + } + } + await this.sharedVaultUserService.deleteAllSharedVaultUsersForSharedVault({ sharedVaultUuid: dto.sharedVaultUuid, originatorUuid: dto.originatorUuid,