Browse Source

Change data gathering selection from distinct orders to symbol profiles

pull/368/head
Thomas 4 years ago
parent
commit
ed0f4db047
  1. 51
      apps/api/src/services/data-gathering.service.ts
  2. 2
      prisma/migrations/20210913190808_changed_currency_to_optional_in_order/migration.sql
  3. 2
      prisma/schema.prisma

51
apps/api/src/services/data-gathering.service.ts

@ -309,27 +309,20 @@ export class DataGatheringService {
private async getSymbols7D(): Promise<IDataGatheringItem[]> { private async getSymbols7D(): Promise<IDataGatheringItem[]> {
const startDate = subDays(resetHours(new Date()), 7); const startDate = subDays(resetHours(new Date()), 7);
const distinctOrders = await this.prismaService.order.findMany({ const symbolProfilesToGather = (
distinct: ['symbol'], await this.prismaService.symbolProfile.findMany({
orderBy: [{ symbol: 'asc' }], orderBy: [{ symbol: 'asc' }],
select: { dataSource: true, symbol: true }, select: {
where: { dataSource: true,
date: { symbol: true
lt: endOfToday() // no draft
} }
}
});
const distinctOrdersWithDate: IDataGatheringItem[] = distinctOrders
.filter((distinctOrder) => {
return !isGhostfolioScraperApiSymbol(distinctOrder.symbol);
}) })
.map((distinctOrder) => { ).map((symbolProfile) => {
return { return {
...distinctOrder, ...symbolProfile,
date: startDate date: startDate
}; };
}); });
const currencyPairsToGather = currencyPairs.map( const currencyPairsToGather = currencyPairs.map(
({ dataSource, symbol }) => { ({ dataSource, symbol }) => {
@ -348,7 +341,7 @@ export class DataGatheringService {
...this.getBenchmarksToGather(startDate), ...this.getBenchmarksToGather(startDate),
...customSymbolsToGather, ...customSymbolsToGather,
...currencyPairsToGather, ...currencyPairsToGather,
...distinctOrdersWithDate ...symbolProfilesToGather
]; ];
} }
@ -368,22 +361,20 @@ export class DataGatheringService {
} }
); );
const distinctOrders = await this.prismaService.order.findMany({ const symbolProfilesToGather =
distinct: ['symbol'], await this.prismaService.symbolProfile.findMany({
orderBy: [{ date: 'asc' }], orderBy: [{ symbol: 'asc' }],
select: { dataSource: true, date: true, symbol: true }, select: {
where: { dataSource: true,
date: { symbol: true
lt: endOfToday() // no draft
} }
} });
});
return [ return [
...this.getBenchmarksToGather(startDate), ...this.getBenchmarksToGather(startDate),
...customSymbolsToGather, ...customSymbolsToGather,
...currencyPairsToGather, ...currencyPairsToGather,
...distinctOrders ...symbolProfilesToGather
]; ];
} }

2
prisma/migrations/20210913190808_changed_currency_to_optional_in_order/migration.sql

@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "Order" ALTER COLUMN "currency" DROP NOT NULL;

2
prisma/schema.prisma

@ -76,7 +76,7 @@ model Order {
accountId String? accountId String?
accountUserId String? accountUserId String?
createdAt DateTime @default(now()) createdAt DateTime @default(now())
currency Currency currency Currency?
dataSource DataSource @default(YAHOO) dataSource DataSource @default(YAHOO)
date DateTime date DateTime
fee Float fee Float

Loading…
Cancel
Save