diff --git a/package-lock.json b/package-lock.json index ec87846..503dd5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,6 @@ "@nestjs/schedule": "^4.1.0", "@prisma/client": "^5.19.1", "axios": "^1.7.7", - "date-fns": "^4.1.0", "lodash": "^4.17.21", "luxon": "^3.5.0", "reflect-metadata": "^0.2.2", @@ -3650,16 +3649,6 @@ "node": ">= 8" } }, - "node_modules/date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, "node_modules/debug": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", diff --git a/package.json b/package.json index ee5c7be..7a614f7 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "@nestjs/schedule": "^4.1.0", "@prisma/client": "^5.19.1", "axios": "^1.7.7", - "date-fns": "^4.1.0", "lodash": "^4.17.21", "luxon": "^3.5.0", "reflect-metadata": "^0.2.2", diff --git a/src/service/allocator/allocator.service.ts b/src/service/allocator/allocator.service.ts index 64d4a07..02f66be 100644 --- a/src/service/allocator/allocator.service.ts +++ b/src/service/allocator/allocator.service.ts @@ -1,4 +1,4 @@ -import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import { Injectable } from '@nestjs/common'; import { PrismaService } from '../../db/prisma.service'; import { getAllocatorBiggestClientDistribution, @@ -10,7 +10,7 @@ import { groupBy } from 'lodash'; import { ProviderComplianceScoreRange } from '../../types/providerComplianceScoreRange'; import { SpsComplianceWeekResponseDto } from '../../types/spsComplianceWeekResponse.dto'; import { SpsComplianceWeekDto } from '../../types/spsComplianceWeek.dto'; -import { differenceInCalendarDays } from 'date-fns'; +import { DateTime } from 'luxon'; @Injectable() export class AllocatorService { @@ -20,39 +20,17 @@ export class AllocatorService { ) {} async getAllocatorRetrievability() { - const allocatorWeeks = await this.prismaService.allocators_weekly.findMany({ - select: { - week: true, - }, - orderBy: { - week: 'desc', - }, - where: { - week: { - lte: new Date(), - }, - }, - skip: 0, - take: 2, - }); - - const lastStoredFullWeek = allocatorWeeks.find( - (p) => differenceInCalendarDays(new Date(), p.week) >= 7, - ); - if (!lastStoredFullWeek) { - throw new HttpException( - 'No data for full week present yet', - HttpStatus.INTERNAL_SERVER_ERROR, - ); - } - const averageSuccessRate = await this.prismaService.allocators_weekly.aggregate({ _avg: { avg_weighted_retrievability_success_rate: true, }, where: { - week: lastStoredFullWeek.week, + week: DateTime.now() + .toUTC() + .minus({ week: 1 }) + .startOf('week') + .toJSDate(), }, }); diff --git a/src/service/provider/provider.service.ts b/src/service/provider/provider.service.ts index 3b133af..25166ce 100644 --- a/src/service/provider/provider.service.ts +++ b/src/service/provider/provider.service.ts @@ -1,4 +1,4 @@ -import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import { Injectable } from '@nestjs/common'; import { PrismaService } from '../../db/prisma.service'; import { getProviderBiggestClientDistribution, @@ -7,7 +7,7 @@ import { } from '../../../prisma/generated/client/sql'; import { RetrievabilityWeekResponseDto } from '../../types/retrievabilityWeekResponse.dto'; import { HistogramHelper } from '../../helper/histogram.helper'; -import { differenceInCalendarDays } from 'date-fns'; +import { DateTime } from 'luxon'; @Injectable() export class ProviderService { @@ -51,32 +51,6 @@ export class ProviderService { } async getProviderRetrievability() { - const providerWeeks = await this.prismaService.providers_weekly.findMany({ - select: { - week: true, - }, - orderBy: { - week: 'desc', - }, - where: { - week: { - lte: new Date(), - }, - }, - skip: 0, - take: 2, - }); - - const lastStoredFullWeek = providerWeeks.find( - (p) => differenceInCalendarDays(new Date(), p.week) >= 7, - ); - if (!lastStoredFullWeek) { - throw new HttpException( - 'No data for full week present yet', - HttpStatus.INTERNAL_SERVER_ERROR, - ); - } - const providerCountAndAverageSuccessRate = await this.prismaService .$queryRaw< [ @@ -87,7 +61,7 @@ export class ProviderService { ] >`select count(distinct provider)::int, 100 * avg(avg_retrievability_success_rate) as "averageSuccessRate" - from providers_weekly where week = ${lastStoredFullWeek.week};`; + from providers_weekly where week = ${DateTime.now().toUTC().minus({ week: 1 }).startOf('week').toJSDate()};`; const weeklyHistogramResult = await this.histogramHelper.getWeeklyHistogramResult(