From df5aeb37a090c0fe20e11ab4d29236b87bff319a Mon Sep 17 00:00:00 2001 From: David Requeno Date: Mon, 10 Aug 2026 21:44:50 -0600 Subject: [PATCH] Refresh asset data after deleting stock splits --- .../asset-profiles/asset-profiles.controller.ts | 7 ++++++- .../asset-profiles.service.spec.ts | 16 ++++++++++++---- .../asset-profiles/asset-profiles.service.ts | 5 ++++- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts index 5ffb756a0..e55bd6d94 100644 --- a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts +++ b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts @@ -167,7 +167,12 @@ export class AssetProfilesController { permissions.deleteAssetProfileSplitOfOwnAssetProfile }); - return this.assetProfilesService.deleteSplit({ id, symbolProfileId }); + return this.assetProfilesService.deleteSplit({ + dataSource, + id, + symbol, + symbolProfileId + }); } @HasPermission(permissions.accessAdminControl) diff --git a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.spec.ts b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.spec.ts index d4fba8e0d..ecfb28f67 100644 --- a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.spec.ts +++ b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.spec.ts @@ -33,10 +33,10 @@ describe('AssetProfilesService', () => { { gatherSymbol } as unknown as DataGatheringService, null, null, + { emit } as unknown as EventEmitter2, null, { order: { findMany } } as never, - null, - { emit } as unknown as EventEmitter2 + null ); }); @@ -83,10 +83,10 @@ describe('AssetProfilesService', () => { { gatherSymbol } as unknown as DataGatheringService, null, null, + { emit } as unknown as EventEmitter2, null, { order: { findMany } } as never, - null, - { emit } as unknown as EventEmitter2 + null ); await assetProfilesService.createSplit({ @@ -117,7 +117,9 @@ describe('AssetProfilesService', () => { await expect( assetProfilesService.deleteSplit({ + dataSource: DataSource.YAHOO, id: 'split-id', + symbol: 'AAPL', symbolProfileId: 'profile-id' }) ).rejects.toBeInstanceOf(NotFoundException); @@ -131,7 +133,9 @@ describe('AssetProfilesService', () => { await expect( assetProfilesService.deleteSplit({ + dataSource: DataSource.YAHOO, id: 'split-id', + symbol: 'AAPL', symbolProfileId: 'profile-id' }) ).resolves.toBeUndefined(); @@ -143,6 +147,10 @@ describe('AssetProfilesService', () => { expect(emit.mock.calls.map(([, event]) => event.getUserId())).toEqual([ 'user-1' ]); + expect(gatherSymbol).toHaveBeenCalledWith({ + dataSource: DataSource.YAHOO, + symbol: 'AAPL' + }); }); }); }); diff --git a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts index fc86452dd..ebef26fb7 100644 --- a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts +++ b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts @@ -72,12 +72,14 @@ export class AssetProfilesService { } public async deleteSplit({ + dataSource, id, + symbol, symbolProfileId }: { id: string; symbolProfileId: string; - }) { + } & AssetProfileIdentifier) { const isDeleted = await this.assetProfileSplitService.deleteById({ id, symbolProfileId @@ -88,6 +90,7 @@ export class AssetProfilesService { } await this.emitPortfolioChangedEvents(symbolProfileId); + await this.dataGatheringService.gatherSymbol({ dataSource, symbol }); } private async emitPortfolioChangedEvents(symbolProfileId: string) {