Browse Source

Fix creation of historical data (upsert instead of update)

pull/594/head
Thomas 4 years ago
parent
commit
9dbca0ff51
  1. 2
      apps/api/src/app/admin/admin.controller.ts
  2. 17
      apps/api/src/services/market-data.service.ts

2
apps/api/src/app/admin/admin.controller.ts

@ -215,7 +215,7 @@ export class AdminController {
const date = new Date(dateString);
return this.marketDataService.updateMarketData({
data,
data: { ...data, dataSource },
where: {
date_symbol: {
date,

17
apps/api/src/services/market-data.service.ts

@ -1,8 +1,9 @@
import { UpdateMarketDataDto } from '@ghostfolio/api/app/admin/update-market-data.dto';
import { DateQuery } from '@ghostfolio/api/app/portfolio/interfaces/date-query.interface';
import { PrismaService } from '@ghostfolio/api/services/prisma.service';
import { resetHours } from '@ghostfolio/common/helper';
import { Injectable } from '@nestjs/common';
import { MarketData, Prisma } from '@prisma/client';
import { DataSource, MarketData, Prisma } from '@prisma/client';
@Injectable()
export class MarketDataService {
@ -67,14 +68,20 @@ export class MarketDataService {
}
public async updateMarketData(params: {
data: Prisma.MarketDataUpdateInput;
data: { dataSource: DataSource } & UpdateMarketDataDto;
where: Prisma.MarketDataWhereUniqueInput;
}): Promise<MarketData> {
const { data, where } = params;
return this.prismaService.marketData.update({
data,
where
return this.prismaService.marketData.upsert({
where,
create: {
dataSource: data.dataSource,
date: where.date_symbol.date,
marketPrice: data.marketPrice,
symbol: where.date_symbol.symbol
},
update: { marketPrice: data.marketPrice }
});
}
}

Loading…
Cancel
Save