|
|
@ -1,5 +1,6 @@ |
|
|
import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; |
|
|
import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; |
|
|
import { UNKNOWN_KEY } from '@ghostfolio/common/config'; |
|
|
import { UNKNOWN_KEY } from '@ghostfolio/common/config'; |
|
|
|
|
|
import { applySymbolProfileOverrides } from '@ghostfolio/common/helper'; |
|
|
import { |
|
|
import { |
|
|
AssetProfileIdentifier, |
|
|
AssetProfileIdentifier, |
|
|
EnhancedSymbolProfile, |
|
|
EnhancedSymbolProfile, |
|
|
@ -192,21 +193,28 @@ export class SymbolProfileService { |
|
|
})[] |
|
|
})[] |
|
|
): EnhancedSymbolProfile[] { |
|
|
): EnhancedSymbolProfile[] { |
|
|
return symbolProfiles.map((symbolProfile) => { |
|
|
return symbolProfiles.map((symbolProfile) => { |
|
|
|
|
|
const symbolProfileWithOverrides = applySymbolProfileOverrides( |
|
|
|
|
|
symbolProfile, |
|
|
|
|
|
symbolProfile.SymbolProfileOverrides |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
const item = { |
|
|
const item = { |
|
|
...symbolProfile, |
|
|
...symbolProfileWithOverrides, |
|
|
activitiesCount: 0, |
|
|
activitiesCount: 0, |
|
|
countries: this.getCountries( |
|
|
countries: this.getCountries( |
|
|
symbolProfile?.countries as unknown as Prisma.JsonArray |
|
|
symbolProfileWithOverrides?.countries as unknown as Prisma.JsonArray |
|
|
), |
|
|
), |
|
|
dateOfFirstActivity: undefined as Date, |
|
|
dateOfFirstActivity: undefined as Date, |
|
|
holdings: this.getHoldings( |
|
|
holdings: this.getHoldings( |
|
|
symbolProfile?.holdings as unknown as Prisma.JsonArray |
|
|
symbolProfileWithOverrides?.holdings as unknown as Prisma.JsonArray |
|
|
|
|
|
), |
|
|
|
|
|
scraperConfiguration: this.getScraperConfiguration( |
|
|
|
|
|
symbolProfileWithOverrides |
|
|
), |
|
|
), |
|
|
scraperConfiguration: this.getScraperConfiguration(symbolProfile), |
|
|
|
|
|
sectors: this.getSectors( |
|
|
sectors: this.getSectors( |
|
|
symbolProfile?.sectors as unknown as Prisma.JsonArray |
|
|
symbolProfileWithOverrides?.sectors as unknown as Prisma.JsonArray |
|
|
), |
|
|
), |
|
|
symbolMapping: this.getSymbolMapping(symbolProfile), |
|
|
symbolMapping: this.getSymbolMapping(symbolProfileWithOverrides), |
|
|
watchedByCount: 0 |
|
|
watchedByCount: 0 |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
@ -217,45 +225,7 @@ export class SymbolProfileService { |
|
|
item.dateOfFirstActivity = symbolProfile.activities?.[0]?.date; |
|
|
item.dateOfFirstActivity = symbolProfile.activities?.[0]?.date; |
|
|
delete item.activities; |
|
|
delete item.activities; |
|
|
|
|
|
|
|
|
if (item.SymbolProfileOverrides) { |
|
|
|
|
|
item.assetClass = |
|
|
|
|
|
item.SymbolProfileOverrides.assetClass ?? item.assetClass; |
|
|
|
|
|
item.assetSubClass = |
|
|
|
|
|
item.SymbolProfileOverrides.assetSubClass ?? item.assetSubClass; |
|
|
|
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
|
(item.SymbolProfileOverrides.countries as unknown as Prisma.JsonArray) |
|
|
|
|
|
?.length > 0 |
|
|
|
|
|
) { |
|
|
|
|
|
item.countries = this.getCountries( |
|
|
|
|
|
item.SymbolProfileOverrides.countries as unknown as Prisma.JsonArray |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
|
(item.SymbolProfileOverrides.holdings as unknown as Holding[]) |
|
|
|
|
|
?.length > 0 |
|
|
|
|
|
) { |
|
|
|
|
|
item.holdings = this.getHoldings( |
|
|
|
|
|
item.SymbolProfileOverrides.holdings as unknown as Prisma.JsonArray |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
item.name = item.SymbolProfileOverrides.name ?? item.name; |
|
|
|
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
|
(item.SymbolProfileOverrides.sectors as unknown as Sector[])?.length > |
|
|
|
|
|
0 |
|
|
|
|
|
) { |
|
|
|
|
|
item.sectors = this.getSectors( |
|
|
|
|
|
item.SymbolProfileOverrides.sectors as unknown as Prisma.JsonArray |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
item.url = item.SymbolProfileOverrides.url ?? item.url; |
|
|
|
|
|
|
|
|
|
|
|
delete item.SymbolProfileOverrides; |
|
|
delete item.SymbolProfileOverrides; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return item; |
|
|
return item; |
|
|
}); |
|
|
}); |
|
|
|