|
|
@ -8,7 +8,8 @@ import { SymbolProfileService } from '@ghostfolio/api/services/symbol-profile/sy |
|
|
|
import { |
|
|
|
DATA_GATHERING_QUEUE_PRIORITY_HIGH, |
|
|
|
GATHER_ASSET_PROFILE_PROCESS_JOB_NAME, |
|
|
|
GATHER_ASSET_PROFILE_PROCESS_JOB_OPTIONS |
|
|
|
GATHER_ASSET_PROFILE_PROCESS_JOB_OPTIONS, |
|
|
|
ghostfolioPrefix |
|
|
|
} from '@ghostfolio/common/config'; |
|
|
|
import { getAssetProfileIdentifier } from '@ghostfolio/common/helper'; |
|
|
|
import { |
|
|
@ -30,6 +31,7 @@ import { |
|
|
|
Type as ActivityType |
|
|
|
} from '@prisma/client'; |
|
|
|
import { Big } from 'big.js'; |
|
|
|
import { isUUID } from 'class-validator'; |
|
|
|
import { endOfToday, isAfter } from 'date-fns'; |
|
|
|
import { groupBy, uniqBy } from 'lodash'; |
|
|
|
import { v4 as uuidv4 } from 'uuid'; |
|
|
@ -125,19 +127,33 @@ export class OrderService { |
|
|
|
const assetClass = data.assetClass; |
|
|
|
const assetSubClass = data.assetSubClass; |
|
|
|
const dataSource: DataSource = 'MANUAL'; |
|
|
|
const id = uuidv4(); |
|
|
|
const name = data.SymbolProfile.connectOrCreate.create.symbol; |
|
|
|
|
|
|
|
data.id = id; |
|
|
|
let name: string; |
|
|
|
let symbol: string; |
|
|
|
|
|
|
|
if ( |
|
|
|
data.SymbolProfile.connectOrCreate.create.symbol.startsWith( |
|
|
|
`${ghostfolioPrefix}_` |
|
|
|
) || |
|
|
|
isUUID(data.SymbolProfile.connectOrCreate.create.symbol) |
|
|
|
) { |
|
|
|
// Connect custom asset profile (clone)
|
|
|
|
symbol = data.SymbolProfile.connectOrCreate.create.symbol; |
|
|
|
} else { |
|
|
|
// Create custom asset profile
|
|
|
|
name = data.SymbolProfile.connectOrCreate.create.symbol; |
|
|
|
symbol = uuidv4(); |
|
|
|
} |
|
|
|
|
|
|
|
data.SymbolProfile.connectOrCreate.create.assetClass = assetClass; |
|
|
|
data.SymbolProfile.connectOrCreate.create.assetSubClass = assetSubClass; |
|
|
|
data.SymbolProfile.connectOrCreate.create.dataSource = dataSource; |
|
|
|
data.SymbolProfile.connectOrCreate.create.name = name; |
|
|
|
data.SymbolProfile.connectOrCreate.create.symbol = id; |
|
|
|
data.SymbolProfile.connectOrCreate.create.symbol = symbol; |
|
|
|
data.SymbolProfile.connectOrCreate.create.userId = userId; |
|
|
|
data.SymbolProfile.connectOrCreate.where.dataSource_symbol = { |
|
|
|
dataSource, |
|
|
|
symbol: id |
|
|
|
symbol |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|