Feature/add support to override asset (sub) class and url in admin control panel (#3218)

* Add support to override asset (sub) class and url in admin control panel

* Update changelog
This commit is contained in:
Fedron
2024-04-03 19:24:38 +01:00
committed by GitHub
parent 371c999fbc
commit 82fe1de1a7
7 changed files with 47 additions and 20 deletions

View File

@@ -25,6 +25,7 @@ import { MarketDataPreset } from '@ghostfolio/common/types';
import { BadRequestException, Injectable } from '@nestjs/common';
import {
AssetClass,
AssetSubClass,
DataSource,
Prisma,
@@ -332,12 +333,18 @@ export class AdminService {
scraperConfiguration,
sectors,
symbol,
symbolMapping
symbolMapping,
url
}: Prisma.SymbolProfileUpdateInput & UniqueAsset) {
const symbolProfileOverrides = {
assetClass: assetClass as AssetClass,
assetSubClass: assetSubClass as AssetSubClass,
name: name as string,
url: url as string
};
const updatedSymbolProfile: Prisma.SymbolProfileUpdateInput & UniqueAsset =
{
assetClass,
assetSubClass,
comment,
countries,
currency,
@@ -347,16 +354,12 @@ export class AdminService {
symbol,
symbolMapping,
...(dataSource === 'MANUAL'
? { name }
? { assetClass, assetSubClass, name, url }
: {
SymbolProfileOverrides: {
upsert: {
create: {
name: name as string
},
update: {
name: name as string
}
create: symbolProfileOverrides,
update: symbolProfileOverrides
}
}
})

View File

@@ -5,7 +5,8 @@ import {
IsISO4217CurrencyCode,
IsObject,
IsOptional,
IsString
IsString,
IsUrl
} from 'class-validator';
export class UpdateAssetProfileDto {
@@ -46,4 +47,11 @@ export class UpdateAssetProfileDto {
symbolMapping?: {
[dataProvider: string]: string;
};
@IsOptional()
@IsUrl({
protocols: ['https'],
require_protocol: true
})
url?: string;
}

View File

@@ -98,7 +98,8 @@ export class SymbolProfileService {
sectors,
symbol,
symbolMapping,
SymbolProfileOverrides
SymbolProfileOverrides,
url
}: Prisma.SymbolProfileUpdateInput & UniqueAsset) {
return this.prismaService.symbolProfile.update({
data: {
@@ -111,7 +112,8 @@ export class SymbolProfileService {
scraperConfiguration,
sectors,
symbolMapping,
SymbolProfileOverrides
SymbolProfileOverrides,
url
},
where: { dataSource_symbol: { dataSource, symbol } }
});