From 3589e72aea772153a60f3546b053c0702cf251e3 Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Sat, 7 Aug 2021 22:38:07 +0200 Subject: [PATCH] Harmonize prisma service (#266) --- apps/api/src/app/access/access.service.ts | 4 +-- apps/api/src/app/account/account.service.ts | 18 +++++------ apps/api/src/app/admin/admin.service.ts | 19 ++++++------ apps/api/src/app/app.controller.ts | 6 ++-- .../app/auth-device/auth-device.service.ts | 12 ++++---- apps/api/src/app/auth/jwt.strategy.ts | 4 +-- apps/api/src/app/cache/cache.service.ts | 4 +-- apps/api/src/app/core/market-data.service.ts | 6 ++-- .../app/experimental/experimental.service.ts | 4 +-- apps/api/src/app/export/export.service.ts | 4 +-- apps/api/src/app/info/info.service.ts | 12 ++++---- apps/api/src/app/order/order.service.ts | 12 ++++---- .../app/subscription/subscription.service.ts | 4 +-- apps/api/src/app/user/user.service.ts | 28 ++++++++--------- .../src/services/data-gathering.service.ts | 30 +++++++++---------- .../api/src/services/data-provider.service.ts | 9 +++--- .../ghostfolio-scraper-api.service.ts | 6 ++-- .../rakuten-rapid-api.service.ts | 10 +++---- .../api/src/services/impersonation.service.ts | 4 +-- .../src/services/symbol-profile.service.ts | 4 +-- 20 files changed, 99 insertions(+), 101 deletions(-) diff --git a/apps/api/src/app/access/access.service.ts b/apps/api/src/app/access/access.service.ts index 74a81de0d..49e2c308d 100644 --- a/apps/api/src/app/access/access.service.ts +++ b/apps/api/src/app/access/access.service.ts @@ -5,7 +5,7 @@ import { Prisma } from '@prisma/client'; @Injectable() export class AccessService { - public constructor(private prisma: PrismaService) {} + public constructor(private readonly prismaService: PrismaService) {} public async accesses(params: { include?: Prisma.AccessInclude; @@ -17,7 +17,7 @@ export class AccessService { }): Promise { const { include, skip, take, cursor, where, orderBy } = params; - return this.prisma.access.findMany({ + return this.prismaService.access.findMany({ cursor, include, orderBy, diff --git a/apps/api/src/app/account/account.service.ts b/apps/api/src/app/account/account.service.ts index ef98db016..f976ef6a6 100644 --- a/apps/api/src/app/account/account.service.ts +++ b/apps/api/src/app/account/account.service.ts @@ -3,21 +3,19 @@ import { PrismaService } from '@ghostfolio/api/services/prisma.service'; import { Injectable } from '@nestjs/common'; import { Account, Currency, Order, Prisma } from '@prisma/client'; -import { RedisCacheService } from '../redis-cache/redis-cache.service'; import { CashDetails } from './interfaces/cash-details.interface'; @Injectable() export class AccountService { public constructor( - private exchangeRateDataService: ExchangeRateDataService, - private readonly redisCacheService: RedisCacheService, - private prisma: PrismaService + private readonly exchangeRateDataService: ExchangeRateDataService, + private readonly prismaService: PrismaService ) {} public async account( accountWhereUniqueInput: Prisma.AccountWhereUniqueInput ): Promise { - return this.prisma.account.findUnique({ + return this.prismaService.account.findUnique({ where: accountWhereUniqueInput }); } @@ -30,7 +28,7 @@ export class AccountService { Order?: Order[]; } > { - return this.prisma.account.findUnique({ + return this.prismaService.account.findUnique({ include: accountInclude, where: accountWhereUniqueInput }); @@ -46,7 +44,7 @@ export class AccountService { }): Promise { const { include, skip, take, cursor, where, orderBy } = params; - return this.prisma.account.findMany({ + return this.prismaService.account.findMany({ cursor, include, orderBy, @@ -60,7 +58,7 @@ export class AccountService { data: Prisma.AccountCreateInput, aUserId: string ): Promise { - return this.prisma.account.create({ + return this.prismaService.account.create({ data }); } @@ -69,7 +67,7 @@ export class AccountService { where: Prisma.AccountWhereUniqueInput, aUserId: string ): Promise { - return this.prisma.account.delete({ + return this.prismaService.account.delete({ where }); } @@ -103,7 +101,7 @@ export class AccountService { aUserId: string ): Promise { const { data, where } = params; - return this.prisma.account.update({ + return this.prismaService.account.update({ data, where }); diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index 89af3efbc..32a918147 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -7,8 +7,8 @@ import { Currency } from '@prisma/client'; @Injectable() export class AdminService { public constructor( - private exchangeRateDataService: ExchangeRateDataService, - private prisma: PrismaService + private readonly exchangeRateDataService: ExchangeRateDataService, + private readonly prismaService: PrismaService ) {} public async get(): Promise { @@ -61,14 +61,14 @@ export class AdminService { } ], lastDataGathering: await this.getLastDataGathering(), - transactionCount: await this.prisma.order.count(), - userCount: await this.prisma.user.count(), + transactionCount: await this.prismaService.order.count(), + userCount: await this.prismaService.user.count(), users: await this.getUsersWithAnalytics() }; } private async getLastDataGathering() { - const lastDataGathering = await this.prisma.property.findUnique({ + const lastDataGathering = await this.prismaService.property.findUnique({ where: { key: 'LAST_DATA_GATHERING' } }); @@ -76,9 +76,10 @@ export class AdminService { return new Date(lastDataGathering.value); } - const dataGatheringInProgress = await this.prisma.property.findUnique({ - where: { key: 'LOCKED_DATA_GATHERING' } - }); + const dataGatheringInProgress = + await this.prismaService.property.findUnique({ + where: { key: 'LOCKED_DATA_GATHERING' } + }); if (dataGatheringInProgress) { return 'IN_PROGRESS'; @@ -88,7 +89,7 @@ export class AdminService { } private async getUsersWithAnalytics() { - return await this.prisma.user.findMany({ + return await this.prismaService.user.findMany({ orderBy: { Analytics: { updatedAt: 'desc' diff --git a/apps/api/src/app/app.controller.ts b/apps/api/src/app/app.controller.ts index ef1d066f6..b02d56842 100644 --- a/apps/api/src/app/app.controller.ts +++ b/apps/api/src/app/app.controller.ts @@ -6,7 +6,7 @@ import { RedisCacheService } from './redis-cache/redis-cache.service'; @Controller() export class AppController { public constructor( - private prisma: PrismaService, + private readonly prismaService: PrismaService, private readonly redisCacheService: RedisCacheService ) { this.initialize(); @@ -15,13 +15,13 @@ export class AppController { private async initialize() { this.redisCacheService.reset(); - const isDataGatheringLocked = await this.prisma.property.findUnique({ + const isDataGatheringLocked = await this.prismaService.property.findUnique({ where: { key: 'LOCKED_DATA_GATHERING' } }); if (!isDataGatheringLocked) { // Prepare for automatical data gather if not locked - await this.prisma.property.deleteMany({ + await this.prismaService.property.deleteMany({ where: { OR: [{ key: 'LAST_DATA_GATHERING' }, { key: 'LOCKED_DATA_GATHERING' }] } diff --git a/apps/api/src/app/auth-device/auth-device.service.ts b/apps/api/src/app/auth-device/auth-device.service.ts index 6d26bfb86..80968f025 100644 --- a/apps/api/src/app/auth-device/auth-device.service.ts +++ b/apps/api/src/app/auth-device/auth-device.service.ts @@ -7,13 +7,13 @@ import { AuthDevice, Prisma } from '@prisma/client'; export class AuthDeviceService { public constructor( private readonly configurationService: ConfigurationService, - private prisma: PrismaService + private readonly prismaService: PrismaService ) {} public async authDevice( where: Prisma.AuthDeviceWhereUniqueInput ): Promise { - return this.prisma.authDevice.findUnique({ + return this.prismaService.authDevice.findUnique({ where }); } @@ -26,7 +26,7 @@ export class AuthDeviceService { orderBy?: Prisma.AuthDeviceOrderByInput; }): Promise { const { skip, take, cursor, where, orderBy } = params; - return this.prisma.authDevice.findMany({ + return this.prismaService.authDevice.findMany({ skip, take, cursor, @@ -38,7 +38,7 @@ export class AuthDeviceService { public async createAuthDevice( data: Prisma.AuthDeviceCreateInput ): Promise { - return this.prisma.authDevice.create({ + return this.prismaService.authDevice.create({ data }); } @@ -49,7 +49,7 @@ export class AuthDeviceService { }): Promise { const { data, where } = params; - return this.prisma.authDevice.update({ + return this.prismaService.authDevice.update({ data, where }); @@ -58,7 +58,7 @@ export class AuthDeviceService { public async deleteAuthDevice( where: Prisma.AuthDeviceWhereUniqueInput ): Promise { - return this.prisma.authDevice.delete({ + return this.prismaService.authDevice.delete({ where }); } diff --git a/apps/api/src/app/auth/jwt.strategy.ts b/apps/api/src/app/auth/jwt.strategy.ts index 29b7deb2a..5fd1ec290 100644 --- a/apps/api/src/app/auth/jwt.strategy.ts +++ b/apps/api/src/app/auth/jwt.strategy.ts @@ -10,7 +10,7 @@ import { UserService } from '../user/user.service'; export class JwtStrategy extends PassportStrategy(Strategy, 'jwt') { public constructor( readonly configurationService: ConfigurationService, - private prisma: PrismaService, + private readonly prismaService: PrismaService, private readonly userService: UserService ) { super({ @@ -24,7 +24,7 @@ export class JwtStrategy extends PassportStrategy(Strategy, 'jwt') { const user = await this.userService.user({ id }); if (user) { - await this.prisma.analytics.upsert({ + await this.prismaService.analytics.upsert({ create: { User: { connect: { id: user.id } } }, update: { activityCount: { increment: 1 }, updatedAt: new Date() }, where: { userId: user.id } diff --git a/apps/api/src/app/cache/cache.service.ts b/apps/api/src/app/cache/cache.service.ts index af0885fb3..854d33ef2 100644 --- a/apps/api/src/app/cache/cache.service.ts +++ b/apps/api/src/app/cache/cache.service.ts @@ -3,10 +3,10 @@ import { Injectable } from '@nestjs/common'; @Injectable() export class CacheService { - public constructor(private prisma: PrismaService) {} + public constructor(private readonly prismaService: PrismaService) {} public async flush(): Promise { - await this.prisma.property.deleteMany({ + await this.prismaService.property.deleteMany({ where: { OR: [{ key: 'LAST_DATA_GATHERING' }, { key: 'LOCKED_DATA_GATHERING' }] } diff --git a/apps/api/src/app/core/market-data.service.ts b/apps/api/src/app/core/market-data.service.ts index 95d42da43..0061da64f 100644 --- a/apps/api/src/app/core/market-data.service.ts +++ b/apps/api/src/app/core/market-data.service.ts @@ -7,7 +7,7 @@ import { DateQuery } from './interfaces/date-query.interface'; @Injectable() export class MarketDataService { - public constructor(private prisma: PrismaService) {} + public constructor(private readonly prismaService: PrismaService) {} public async get({ date, @@ -16,7 +16,7 @@ export class MarketDataService { date: Date; symbol: string; }): Promise { - return await this.prisma.marketData.findFirst({ + return await this.prismaService.marketData.findFirst({ where: { symbol, date: resetHours(date) @@ -31,7 +31,7 @@ export class MarketDataService { dateQuery: DateQuery; symbols: string[]; }): Promise { - return await this.prisma.marketData.findMany({ + return await this.prismaService.marketData.findMany({ orderBy: [ { date: 'asc' diff --git a/apps/api/src/app/experimental/experimental.service.ts b/apps/api/src/app/experimental/experimental.service.ts index edbe7bce3..79a4427d0 100644 --- a/apps/api/src/app/experimental/experimental.service.ts +++ b/apps/api/src/app/experimental/experimental.service.ts @@ -11,12 +11,12 @@ export class ExperimentalService { private readonly accountService: AccountService, private readonly dataProviderService: DataProviderService, private readonly exchangeRateDataService: ExchangeRateDataService, - private prisma: PrismaService, + private readonly prismaService: PrismaService, private readonly rulesService: RulesService ) {} public async getBenchmark(aSymbol: string) { - return this.prisma.marketData.findMany({ + return this.prismaService.marketData.findMany({ orderBy: { date: 'asc' }, select: { date: true, marketPrice: true }, where: { symbol: aSymbol } diff --git a/apps/api/src/app/export/export.service.ts b/apps/api/src/app/export/export.service.ts index 5f2193b01..5fd88d4c7 100644 --- a/apps/api/src/app/export/export.service.ts +++ b/apps/api/src/app/export/export.service.ts @@ -5,10 +5,10 @@ import { Injectable } from '@nestjs/common'; @Injectable() export class ExportService { - public constructor(private prisma: PrismaService) {} + public constructor(private readonly prismaService: PrismaService) {} public async export({ userId }: { userId: string }): Promise { - const orders = await this.prisma.order.findMany({ + const orders = await this.prismaService.order.findMany({ orderBy: { date: 'desc' }, select: { currency: true, diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index 17a720001..e4f641c7c 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -15,13 +15,13 @@ export class InfoService { public constructor( private readonly configurationService: ConfigurationService, - private jwtService: JwtService, - private prisma: PrismaService + private readonly jwtService: JwtService, + private readonly prismaService: PrismaService ) {} public async get(): Promise { const info: Partial = {}; - const platforms = await this.prisma.platform.findMany({ + const platforms = await this.prismaService.platform.findMany({ orderBy: { name: 'asc' }, select: { id: true, name: true } }); @@ -63,7 +63,7 @@ export class InfoService { } private async countActiveUsers(aDays: number) { - return await this.prisma.user.count({ + return await this.prismaService.user.count({ orderBy: { Analytics: { updatedAt: 'desc' @@ -116,7 +116,7 @@ export class InfoService { } private async getLastDataGathering() { - const lastDataGathering = await this.prisma.property.findUnique({ + const lastDataGathering = await this.prismaService.property.findUnique({ where: { key: 'LAST_DATA_GATHERING' } }); @@ -144,7 +144,7 @@ export class InfoService { return undefined; } - const stripeConfig = await this.prisma.property.findUnique({ + const stripeConfig = await this.prismaService.property.findUnique({ where: { key: 'STRIPE_CONFIG' } }); diff --git a/apps/api/src/app/order/order.service.ts b/apps/api/src/app/order/order.service.ts index 6012f1384..071b52f4c 100644 --- a/apps/api/src/app/order/order.service.ts +++ b/apps/api/src/app/order/order.service.ts @@ -12,13 +12,13 @@ export class OrderService { public constructor( private readonly cacheService: CacheService, private readonly dataGatheringService: DataGatheringService, - private prisma: PrismaService + private readonly prismaService: PrismaService ) {} public async order( orderWhereUniqueInput: Prisma.OrderWhereUniqueInput ): Promise { - return this.prisma.order.findUnique({ + return this.prismaService.order.findUnique({ where: orderWhereUniqueInput }); } @@ -33,7 +33,7 @@ export class OrderService { }): Promise { const { include, skip, take, cursor, where, orderBy } = params; - return this.prisma.order.findMany({ + return this.prismaService.order.findMany({ cursor, include, orderBy, @@ -61,7 +61,7 @@ export class OrderService { await this.cacheService.flush(); - return this.prisma.order.create({ + return this.prismaService.order.create({ data: { ...data, isDraft @@ -72,7 +72,7 @@ export class OrderService { public async deleteOrder( where: Prisma.OrderWhereUniqueInput ): Promise { - return this.prisma.order.delete({ + return this.prismaService.order.delete({ where }); } @@ -123,7 +123,7 @@ export class OrderService { await this.cacheService.flush(); - return this.prisma.order.update({ + return this.prismaService.order.update({ data: { ...data, isDraft diff --git a/apps/api/src/app/subscription/subscription.service.ts b/apps/api/src/app/subscription/subscription.service.ts index 4f9207922..a5f5476ca 100644 --- a/apps/api/src/app/subscription/subscription.service.ts +++ b/apps/api/src/app/subscription/subscription.service.ts @@ -10,7 +10,7 @@ export class SubscriptionService { public constructor( private readonly configurationService: ConfigurationService, - private prisma: PrismaService + private readonly prismaService: PrismaService ) { this.stripe = new Stripe( this.configurationService.get('STRIPE_SECRET_KEY'), @@ -68,7 +68,7 @@ export class SubscriptionService { aCheckoutSessionId ); - await this.prisma.subscription.create({ + await this.prismaService.subscription.create({ data: { expiresAt: addDays(new Date(), 365), User: { diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index fe3441c36..4134d3d09 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -18,7 +18,7 @@ export class UserService { public constructor( private readonly configurationService: ConfigurationService, - private prisma: PrismaService + private readonly prismaService: PrismaService ) {} public async getUser({ @@ -29,7 +29,7 @@ export class UserService { Settings, subscription }: UserWithSettings): Promise { - const access = await this.prisma.access.findMany({ + const access = await this.prismaService.access.findMany({ include: { User: true }, @@ -60,7 +60,7 @@ export class UserService { public async user( userWhereUniqueInput: Prisma.UserWhereUniqueInput ): Promise { - const userFromDatabase = await this.prisma.user.findUnique({ + const userFromDatabase = await this.prismaService.user.findUnique({ include: { Account: true, Settings: true, Subscription: true }, where: userWhereUniqueInput }); @@ -129,7 +129,7 @@ export class UserService { orderBy?: Prisma.UserOrderByInput; }): Promise { const { skip, take, cursor, where, orderBy } = params; - return this.prisma.user.findMany({ + return this.prismaService.user.findMany({ skip, take, cursor, @@ -146,7 +146,7 @@ export class UserService { } public async createUser(data?: Prisma.UserCreateInput): Promise { - let user = await this.prisma.user.create({ + let user = await this.prismaService.user.create({ data: { ...data, Account: { @@ -169,7 +169,7 @@ export class UserService { process.env.ACCESS_TOKEN_SALT ); - user = await this.prisma.user.update({ + user = await this.prismaService.user.update({ data: { accessToken: hashedAccessToken }, where: { id: user.id } }); @@ -185,36 +185,36 @@ export class UserService { data: Prisma.UserUpdateInput; }): Promise { const { where, data } = params; - return this.prisma.user.update({ + return this.prismaService.user.update({ data, where }); } public async deleteUser(where: Prisma.UserWhereUniqueInput): Promise { - await this.prisma.access.deleteMany({ + await this.prismaService.access.deleteMany({ where: { OR: [{ granteeUserId: where.id }, { userId: where.id }] } }); - await this.prisma.account.deleteMany({ + await this.prismaService.account.deleteMany({ where: { userId: where.id } }); - await this.prisma.analytics.delete({ + await this.prismaService.analytics.delete({ where: { userId: where.id } }); - await this.prisma.order.deleteMany({ + await this.prismaService.order.deleteMany({ where: { userId: where.id } }); try { - await this.prisma.settings.delete({ + await this.prismaService.settings.delete({ where: { userId: where.id } }); } catch {} - return this.prisma.user.delete({ + return this.prismaService.user.delete({ where }); } @@ -224,7 +224,7 @@ export class UserService { userId, viewMode }: UserSettingsParams) { - await this.prisma.settings.upsert({ + await this.prismaService.settings.upsert({ create: { currency, User: { diff --git a/apps/api/src/services/data-gathering.service.ts b/apps/api/src/services/data-gathering.service.ts index 2f39ee1aa..8e7deffc7 100644 --- a/apps/api/src/services/data-gathering.service.ts +++ b/apps/api/src/services/data-gathering.service.ts @@ -30,7 +30,7 @@ export class DataGatheringService { private readonly configurationService: ConfigurationService, private readonly dataProviderService: DataProviderService, private readonly ghostfolioScraperApi: GhostfolioScraperApiService, - private prisma: PrismaService + private readonly prismaService: PrismaService ) {} public async gather7Days() { @@ -40,7 +40,7 @@ export class DataGatheringService { console.log('7d data gathering has been started.'); console.time('7d-data-gathering'); - await this.prisma.property.create({ + await this.prismaService.property.create({ data: { key: 'LOCKED_DATA_GATHERING', value: new Date().toISOString() @@ -52,7 +52,7 @@ export class DataGatheringService { try { await this.gatherSymbols(symbols); - await this.prisma.property.upsert({ + await this.prismaService.property.upsert({ create: { key: 'LAST_DATA_GATHERING', value: new Date().toISOString() @@ -64,7 +64,7 @@ export class DataGatheringService { console.error(error); } - await this.prisma.property.delete({ + await this.prismaService.property.delete({ where: { key: 'LOCKED_DATA_GATHERING' } @@ -76,7 +76,7 @@ export class DataGatheringService { } public async gatherMax() { - const isDataGatheringLocked = await this.prisma.property.findUnique({ + const isDataGatheringLocked = await this.prismaService.property.findUnique({ where: { key: 'LOCKED_DATA_GATHERING' } }); @@ -84,7 +84,7 @@ export class DataGatheringService { console.log('Max data gathering has been started.'); console.time('max-data-gathering'); - await this.prisma.property.create({ + await this.prismaService.property.create({ data: { key: 'LOCKED_DATA_GATHERING', value: new Date().toISOString() @@ -96,7 +96,7 @@ export class DataGatheringService { try { await this.gatherSymbols(symbols); - await this.prisma.property.upsert({ + await this.prismaService.property.upsert({ create: { key: 'LAST_DATA_GATHERING', value: new Date().toISOString() @@ -108,7 +108,7 @@ export class DataGatheringService { console.error(error); } - await this.prisma.property.delete({ + await this.prismaService.property.delete({ where: { key: 'LOCKED_DATA_GATHERING' } @@ -138,7 +138,7 @@ export class DataGatheringService { currentData )) { try { - await this.prisma.symbolProfile.upsert({ + await this.prismaService.symbolProfile.upsert({ create: { currency, dataSource, @@ -202,7 +202,7 @@ export class DataGatheringService { } try { - await this.prisma.marketData.create({ + await this.prismaService.marketData.create({ data: { symbol, date: currentDate, @@ -270,7 +270,7 @@ export class DataGatheringService { private async getSymbols7D(): Promise { const startDate = subDays(resetHours(new Date()), 7); - const distinctOrders = await this.prisma.order.findMany({ + const distinctOrders = await this.prismaService.order.findMany({ distinct: ['symbol'], orderBy: [{ symbol: 'asc' }], select: { dataSource: true, symbol: true }, @@ -331,7 +331,7 @@ export class DataGatheringService { } ); - const distinctOrders = await this.prisma.order.findMany({ + const distinctOrders = await this.prismaService.order.findMany({ distinct: ['symbol'], orderBy: [{ date: 'asc' }], select: { dataSource: true, date: true, symbol: true }, @@ -353,7 +353,7 @@ export class DataGatheringService { private async getSymbolsProfileData(): Promise { const startDate = subDays(resetHours(new Date()), 7); - const distinctOrders = await this.prisma.order.findMany({ + const distinctOrders = await this.prismaService.order.findMany({ distinct: ['symbol'], orderBy: [{ symbol: 'asc' }], select: { dataSource: true, symbol: true } @@ -370,11 +370,11 @@ export class DataGatheringService { } private async isDataGatheringNeeded() { - const lastDataGathering = await this.prisma.property.findUnique({ + const lastDataGathering = await this.prismaService.property.findUnique({ where: { key: 'LAST_DATA_GATHERING' } }); - const isDataGatheringLocked = await this.prisma.property.findUnique({ + const isDataGatheringLocked = await this.prismaService.property.findUnique({ where: { key: 'LOCKED_DATA_GATHERING' } }); diff --git a/apps/api/src/services/data-provider.service.ts b/apps/api/src/services/data-provider.service.ts index 98fbc6ee2..56a3cb708 100644 --- a/apps/api/src/services/data-provider.service.ts +++ b/apps/api/src/services/data-provider.service.ts @@ -26,11 +26,11 @@ export class DataProviderService { private readonly alphaVantageService: AlphaVantageService, private readonly configurationService: ConfigurationService, private readonly ghostfolioScraperApiService: GhostfolioScraperApiService, - private prisma: PrismaService, + private readonly prismaService: PrismaService, private readonly rakutenRapidApiService: RakutenRapidApiService, private readonly yahooFinanceService: YahooFinanceService ) { - this.rakutenRapidApiService?.setPrisma(this.prisma); + this.rakutenRapidApiService?.setPrisma(this.prismaService); } public async get( @@ -112,9 +112,8 @@ export class DataProviderService { `','` )}') ${granularityQuery} ${rangeQuery} ORDER BY date;`; - const marketDataByGranularity: MarketData[] = await this.prisma.$queryRaw( - queryRaw - ); + const marketDataByGranularity: MarketData[] = + await this.prismaService.$queryRaw(queryRaw); response = marketDataByGranularity.reduce((r, marketData) => { const { date, marketPrice, symbol } = marketData; diff --git a/apps/api/src/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service.ts b/apps/api/src/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service.ts index 325448063..e2bda0476 100644 --- a/apps/api/src/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service.ts +++ b/apps/api/src/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service.ts @@ -23,7 +23,7 @@ import { ScraperConfig } from './interfaces/scraper-config.interface'; export class GhostfolioScraperApiService implements DataProviderInterface { private static NUMERIC_REGEXP = /[-]{0,1}[\d]*[.,]{0,1}[\d]+/g; - public constructor(private prisma: PrismaService) {} + public constructor(private readonly prismaService: PrismaService) {} public canHandle(symbol: string) { return isGhostfolioScraperApiSymbol(symbol); @@ -41,7 +41,7 @@ export class GhostfolioScraperApiService implements DataProviderInterface { const scraperConfig = await this.getScraperConfigurationBySymbol(symbol); - const { marketPrice } = await this.prisma.marketData.findFirst({ + const { marketPrice } = await this.prismaService.marketData.findFirst({ orderBy: { date: 'desc' }, @@ -111,7 +111,7 @@ export class GhostfolioScraperApiService implements DataProviderInterface { public async getScraperConfigurations(): Promise { try { const { value: scraperConfigString } = - await this.prisma.property.findFirst({ + await this.prismaService.property.findFirst({ select: { value: true }, diff --git a/apps/api/src/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service.ts b/apps/api/src/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service.ts index 6b8fa7c89..944ada814 100644 --- a/apps/api/src/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service.ts +++ b/apps/api/src/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service.ts @@ -23,7 +23,7 @@ import { PrismaService } from '../../prisma.service'; export class RakutenRapidApiService implements DataProviderInterface { public static FEAR_AND_GREED_INDEX_NAME = 'Fear & Greed Index'; - private prisma: PrismaService; + private prismaService: PrismaService; public constructor( private readonly configurationService: ConfigurationService @@ -89,7 +89,7 @@ export class RakutenRapidApiService implements DataProviderInterface { // TODO: can be removed after all data from the last year has been gathered // (introduced on 27.03.2021) - await this.prisma.marketData.create({ + await this.prismaService.marketData.create({ data: { symbol, date: subWeeks(getToday(), 1), @@ -97,7 +97,7 @@ export class RakutenRapidApiService implements DataProviderInterface { } }); - await this.prisma.marketData.create({ + await this.prismaService.marketData.create({ data: { symbol, date: subMonths(getToday(), 1), @@ -105,7 +105,7 @@ export class RakutenRapidApiService implements DataProviderInterface { } }); - await this.prisma.marketData.create({ + await this.prismaService.marketData.create({ data: { symbol, date: subYears(getToday(), 1), @@ -134,7 +134,7 @@ export class RakutenRapidApiService implements DataProviderInterface { } public setPrisma(aPrismaService: PrismaService) { - this.prisma = aPrismaService; + this.prismaService = aPrismaService; } private async getFearAndGreedIndex(): Promise<{ diff --git a/apps/api/src/services/impersonation.service.ts b/apps/api/src/services/impersonation.service.ts index 826a1584b..8082a8198 100644 --- a/apps/api/src/services/impersonation.service.ts +++ b/apps/api/src/services/impersonation.service.ts @@ -4,10 +4,10 @@ import { PrismaService } from './prisma.service'; @Injectable() export class ImpersonationService { - public constructor(private prisma: PrismaService) {} + public constructor(private readonly prismaService: PrismaService) {} public async validateImpersonationId(aId = '', aUserId: string) { - const accessObject = await this.prisma.access.findFirst({ + const accessObject = await this.prismaService.access.findFirst({ where: { GranteeUser: { id: aUserId }, id: aId } }); diff --git a/apps/api/src/services/symbol-profile.service.ts b/apps/api/src/services/symbol-profile.service.ts index 1a0c472ea..188683efd 100644 --- a/apps/api/src/services/symbol-profile.service.ts +++ b/apps/api/src/services/symbol-profile.service.ts @@ -9,12 +9,12 @@ import { continents, countries } from 'countries-list'; @Injectable() export class SymbolProfileService { - constructor(private prisma: PrismaService) {} + constructor(private readonly prismaService: PrismaService) {} public async getSymbolProfiles( symbols: string[] ): Promise { - return this.prisma.symbolProfile + return this.prismaService.symbolProfile .findMany({ where: { symbol: {