From 65abae14e6655d77462b08e5955a84c7a6781e71 Mon Sep 17 00:00:00 2001 From: Dan Date: Wed, 1 Nov 2023 15:07:35 +0100 Subject: [PATCH] First Implementation of tags on holdings --- apps/api/src/app/admin/admin.service.ts | 2 ++ apps/api/src/app/admin/update-asset-profile.dto.ts | 12 +++++++++++- .../symbol-profile/symbol-profile.service.ts | 2 ++ .../asset-profile-dialog.component.ts | 5 +++++ .../asset-profile-dialog/asset-profile-dialog.html | 11 +++++++++++ .../interfaces/enhanced-symbol-profile.interface.ts | 1 + 6 files changed, 32 insertions(+), 1 deletion(-) diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index a42723ba3..4332bd8bb 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -308,6 +308,7 @@ export class AdminService { comment, dataSource, name, + tags, scraperConfiguration, symbol, symbolMapping @@ -318,6 +319,7 @@ export class AdminService { comment, dataSource, name, + tags, scraperConfiguration, symbol, symbolMapping diff --git a/apps/api/src/app/admin/update-asset-profile.dto.ts b/apps/api/src/app/admin/update-asset-profile.dto.ts index a39f8db81..d4efd8c8b 100644 --- a/apps/api/src/app/admin/update-asset-profile.dto.ts +++ b/apps/api/src/app/admin/update-asset-profile.dto.ts @@ -1,5 +1,11 @@ import { AssetClass, AssetSubClass, Prisma } from '@prisma/client'; -import { IsEnum, IsObject, IsOptional, IsString } from 'class-validator'; +import { + IsArray, + IsEnum, + IsObject, + IsOptional, + IsString +} from 'class-validator'; export class UpdateAssetProfileDto { @IsEnum(AssetClass, { each: true }) @@ -18,6 +24,10 @@ export class UpdateAssetProfileDto { @IsOptional() name?: string; + @IsArray() + @IsOptional() + tags?: string[]; + @IsObject() @IsOptional() scraperConfiguration?: Prisma.InputJsonObject; diff --git a/apps/api/src/services/symbol-profile/symbol-profile.service.ts b/apps/api/src/services/symbol-profile/symbol-profile.service.ts index 46a6991cb..5b3ea1b7d 100644 --- a/apps/api/src/services/symbol-profile/symbol-profile.service.ts +++ b/apps/api/src/services/symbol-profile/symbol-profile.service.ts @@ -91,6 +91,7 @@ export class SymbolProfileService { comment, dataSource, name, + tags, scraperConfiguration, symbol, symbolMapping @@ -101,6 +102,7 @@ export class SymbolProfileService { assetSubClass, comment, name, + tags, scraperConfiguration, symbolMapping }, diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts index 5e331ca91..818564e24 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts @@ -51,6 +51,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit { assetSubClass: new FormControl(undefined), comment: '', name: ['', Validators.required], + tags: new FormControl(undefined), scraperConfiguration: '', symbolMapping: '' }); @@ -66,6 +67,8 @@ export class AssetProfileDialog implements OnDestroy, OnInit { [name: string]: { name: string; value: number }; }; + public HoldingTags: { id: string; label: string }[]; + private static readonly HISTORICAL_DATA_TEMPLATE = `date;marketPrice\n${format( new Date(), DATE_FORMAT @@ -132,6 +135,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit { assetClass: this.assetProfile.assetClass, assetSubClass: this.assetProfile.assetSubClass, comment: this.assetProfile?.comment ?? '', + tags: this.assetProfile?.tags, scraperConfiguration: JSON.stringify( this.assetProfile?.scraperConfiguration ?? {} ), @@ -225,6 +229,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit { assetSubClass: this.assetProfileForm.controls['assetSubClass'].value, comment: this.assetProfileForm.controls['comment'].value ?? null, name: this.assetProfileForm.controls['name'].value, + tag: this.assetProfileForm.controls['tags'].value, scraperConfiguration, symbolMapping }; diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html index 3a095ace2..4b521c929 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -210,6 +210,17 @@ +
+ + Tags + + + {{ tag.label }} + + +