From 438608885558a7b0828b77dab4f7f1c51ddd348a Mon Sep 17 00:00:00 2001 From: omkarg01 Date: Fri, 13 Mar 2026 00:58:43 +0530 Subject: [PATCH] refactor: Non-manual assets store in SymbolProfileOverrides and file imports arranged --- apps/api/src/app/admin/admin.service.ts | 4 +-- .../asset-profile-dialog.component.ts | 5 +--- libs/common/src/lib/utils/form.util.ts | 26 ++++++++----------- libs/common/src/lib/utils/index.ts | 4 +-- 4 files changed, 15 insertions(+), 24 deletions(-) diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index 47c8ffd1d..5f1f75e67 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -625,17 +625,15 @@ export class AdminService { const updatedSymbolProfile: Prisma.SymbolProfileUpdateInput = { comment, - countries, currency, dataSource, holdings, isActive, scraperConfiguration, - sectors, symbol, symbolMapping, ...(dataSource === 'MANUAL' - ? { assetClass, assetSubClass, name, url } + ? { assetClass, assetSubClass, name, url, countries, sectors } : { SymbolProfileOverrides: { upsert: { 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 b82719995..e9c8bad57 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 @@ -17,10 +17,7 @@ import { User } from '@ghostfolio/common/interfaces'; import { DateRange } from '@ghostfolio/common/types'; -import { - validateObjectForForm, - jsonValidator -} from '@ghostfolio/common/utils/form.util'; +import { jsonValidator, validateObjectForForm } from '@ghostfolio/common/utils'; import { GfCurrencySelectorComponent } from '@ghostfolio/ui/currency-selector'; import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo'; import { GfHistoricalMarketDataEditorComponent } from '@ghostfolio/ui/historical-market-data-editor'; diff --git a/libs/common/src/lib/utils/form.util.ts b/libs/common/src/lib/utils/form.util.ts index eff18f8fc..be82e9306 100644 --- a/libs/common/src/lib/utils/form.util.ts +++ b/libs/common/src/lib/utils/form.util.ts @@ -1,7 +1,17 @@ import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; import { FormGroup } from '@angular/forms'; import { plainToInstance } from 'class-transformer'; -import { validate } from 'class-validator'; +import { isJSON, validate } from 'class-validator'; + +export function jsonValidator(): ValidatorFn { + return (control: AbstractControl): ValidationErrors | null => { + if (!isJSON(control.value)) { + return { invalidJson: true }; + } + + return null; + }; +} export async function validateObjectForForm({ classDto, @@ -45,17 +55,3 @@ export async function validateObjectForForm({ return Promise.reject(nonIgnoredErrors); } - -export function jsonValidator(): ValidatorFn { - return (control: AbstractControl): ValidationErrors | null => { - if (!control.value) { - return null; - } - - try { - JSON.parse(control.value); - } catch { - return { invalidJson: true }; - } - }; -} diff --git a/libs/common/src/lib/utils/index.ts b/libs/common/src/lib/utils/index.ts index 2bdd03fdc..371126790 100644 --- a/libs/common/src/lib/utils/index.ts +++ b/libs/common/src/lib/utils/index.ts @@ -1,3 +1,3 @@ -import { validateObjectForForm } from './form.util'; +import { jsonValidator, validateObjectForForm } from './form.util'; -export { validateObjectForForm }; +export { jsonValidator, validateObjectForForm };