Browse Source

refactor: Non-manual assets store in SymbolProfileOverrides and file imports arranged

pull/6284/head
omkarg01 3 weeks ago
parent
commit
4386088855
  1. 4
      apps/api/src/app/admin/admin.service.ts
  2. 5
      apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
  3. 26
      libs/common/src/lib/utils/form.util.ts
  4. 4
      libs/common/src/lib/utils/index.ts

4
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: {

5
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';

26
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<T>({
classDto,
@ -45,17 +55,3 @@ export async function validateObjectForForm<T>({
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 };
}
};
}

4
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 };

Loading…
Cancel
Save