From 13014f55234db526ef64822a419df411884ac7b9 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 27 Jun 2026 11:07:40 +0200 Subject: [PATCH] Refactoring --- apps/api/src/app/access/access.controller.ts | 58 +++++++++---------- .../app/endpoints/public/public.controller.ts | 2 - ...reate-or-update-access-dialog.component.ts | 7 ++- 3 files changed, 31 insertions(+), 36 deletions(-) diff --git a/apps/api/src/app/access/access.controller.ts b/apps/api/src/app/access/access.controller.ts index 727bf821e..e987e8756 100644 --- a/apps/api/src/app/access/access.controller.ts +++ b/apps/api/src/app/access/access.controller.ts @@ -46,19 +46,13 @@ export class AccessController { }); return accessesWithGranteeUser.map( - ({ - alias, - granteeUser, - id, - permissions: accessPermissions, - settings - }) => { + ({ alias, granteeUser, id, permissions, settings }) => { if (granteeUser) { return { alias, - grantee: granteeUser?.id, id, - permissions: accessPermissions, + permissions, + grantee: granteeUser?.id, settings: settings as AccessSettings, type: 'PRIVATE' }; @@ -66,9 +60,9 @@ export class AccessController { return { alias, - grantee: 'Public', id, - permissions: accessPermissions, + permissions, + grantee: 'Public', settings: settings as AccessSettings, type: 'PUBLIC' }; @@ -114,6 +108,27 @@ export class AccessController { } } + @Delete(':id') + @HasPermission(permissions.deleteAccess) + @UseGuards(AuthGuard('jwt'), HasPermissionGuard) + public async deleteAccess(@Param('id') id: string): Promise { + const originalAccess = await this.accessService.access({ + id, + userId: this.request.user.id + }); + + if (!originalAccess) { + throw new HttpException( + getReasonPhrase(StatusCodes.FORBIDDEN), + StatusCodes.FORBIDDEN + ); + } + + return this.accessService.deleteAccess({ + id + }); + } + @HasPermission(permissions.updateAccess) @Put(':id') @UseGuards(AuthGuard('jwt'), HasPermissionGuard) @@ -166,25 +181,4 @@ export class AccessController { ); } } - - @Delete(':id') - @HasPermission(permissions.deleteAccess) - @UseGuards(AuthGuard('jwt'), HasPermissionGuard) - public async deleteAccess(@Param('id') id: string): Promise { - const originalAccess = await this.accessService.access({ - id, - userId: this.request.user.id - }); - - if (!originalAccess) { - throw new HttpException( - getReasonPhrase(StatusCodes.FORBIDDEN), - StatusCodes.FORBIDDEN - ); - } - - return this.accessService.deleteAccess({ - id - }); - } } diff --git a/apps/api/src/app/endpoints/public/public.controller.ts b/apps/api/src/app/endpoints/public/public.controller.ts index 8f1c80761..4faa8222d 100644 --- a/apps/api/src/app/endpoints/public/public.controller.ts +++ b/apps/api/src/app/endpoints/public/public.controller.ts @@ -69,7 +69,6 @@ export class PublicController { hasDetails = user.subscription.type === SubscriptionType.Premium; } - // Get the portfolio filters from the access settings const { filters: portfolioFilters = [] } = (access.settings ?? {}) as AccessSettings; @@ -99,7 +98,6 @@ export class PublicController { user.settings?.settings.baseCurrency ?? DEFAULT_CURRENCY; const filteredHoldings = Object.fromEntries( Object.entries(holdings).filter(([, holding]) => { - // Remove only cash holdings that match the base currency const isCash = holding.assetProfile.assetSubClass === AssetSubClass.CASH; const isBaseCurrency = holding.assetProfile.symbol === baseCurrency; diff --git a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts index f9778be26..88c343e74 100644 --- a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts +++ b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts @@ -61,10 +61,9 @@ import { CreateOrUpdateAccessDialogParams } from './interfaces/interfaces'; templateUrl: 'create-or-update-access-dialog.html' }) export class GfCreateOrUpdateAccessDialogComponent implements OnInit { - public hasExperimentalFeatures = false; - public accounts: AccountWithPlatform[] = []; public assetClasses: Filter[] = []; + public hasExperimentalFeatures = false; public holdings: PortfolioPosition[] = []; public tags: Filter[] = []; @@ -72,12 +71,16 @@ export class GfCreateOrUpdateAccessDialogComponent implements OnInit { protected readonly mode: 'create' | 'update'; private readonly changeDetectorRef = inject(ChangeDetectorRef); + private readonly data = inject(MAT_DIALOG_DATA); + private readonly dataService = inject(DataService); private readonly destroyRef = inject(DestroyRef); + private readonly dialogRef = inject>(MatDialogRef); + private readonly formBuilder = inject(FormBuilder); private readonly notificationService = inject(NotificationService); private readonly userService = inject(UserService);