From 0482f4ca6718436d562298dae4d52432bb7e9e26 Mon Sep 17 00:00:00 2001 From: Valentin Zickner Date: Sun, 8 Aug 2021 20:30:02 +0200 Subject: [PATCH] introduce basic module structure for data provider --- apps/api/src/app/account/account.module.ts | 7 ++--- apps/api/src/app/admin/admin.module.ts | 15 ++------- apps/api/src/app/app.module.ts | 26 +++++----------- apps/api/src/app/core/core.module.ts | 25 +++------------ .../src/app/core/current-rate.service.spec.ts | 2 +- apps/api/src/app/core/current-rate.service.ts | 2 +- .../app/experimental/experimental.module.ts | 26 ++++++---------- .../app/experimental/experimental.service.ts | 2 +- apps/api/src/app/export/export.module.ts | 28 ++++++----------- apps/api/src/app/import/import.module.ts | 31 ++++++------------- apps/api/src/app/order/order.module.ts | 24 ++++++-------- .../api/src/app/portfolio/portfolio.module.ts | 24 ++++++-------- .../src/app/portfolio/portfolio.service.ts | 2 +- apps/api/src/app/symbol/symbol.module.ts | 23 +++----------- apps/api/src/app/symbol/symbol.service.ts | 2 +- apps/api/src/services/configuration.module.ts | 8 +++++ .../src/services/data-gathering.service.ts | 2 +- .../data-provider/data-provider.module.ts | 21 +++++++++++++ .../data-provider.service.ts | 14 ++++----- .../services/exchange-rate-data.service.ts | 2 +- apps/api/src/services/prisma.module.ts | 8 +++++ 21 files changed, 124 insertions(+), 170 deletions(-) create mode 100644 apps/api/src/services/configuration.module.ts create mode 100644 apps/api/src/services/data-provider/data-provider.module.ts rename apps/api/src/services/{ => data-provider}/data-provider.service.ts (91%) create mode 100644 apps/api/src/services/prisma.module.ts diff --git a/apps/api/src/app/account/account.module.ts b/apps/api/src/app/account/account.module.ts index bbd272978..9c9768911 100644 --- a/apps/api/src/app/account/account.module.ts +++ b/apps/api/src/app/account/account.module.ts @@ -1,6 +1,5 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration.service'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; -import { AlphaVantageService } from '@ghostfolio/api/services/data-provider/alpha-vantage/alpha-vantage.service'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; import { GhostfolioScraperApiService } from '@ghostfolio/api/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; import { RakutenRapidApiService } from '@ghostfolio/api/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service'; import { YahooFinanceService } from '@ghostfolio/api/services/data-provider/yahoo-finance/yahoo-finance.service'; @@ -14,13 +13,11 @@ import { AccountController } from './account.controller'; import { AccountService } from './account.service'; @Module({ - imports: [RedisCacheModule], + imports: [RedisCacheModule, DataProviderModule], controllers: [AccountController], providers: [ AccountService, - AlphaVantageService, ConfigurationService, - DataProviderService, ExchangeRateDataService, GhostfolioScraperApiService, ImpersonationService, diff --git a/apps/api/src/app/admin/admin.module.ts b/apps/api/src/app/admin/admin.module.ts index a78c435e3..a7e453128 100644 --- a/apps/api/src/app/admin/admin.module.ts +++ b/apps/api/src/app/admin/admin.module.ts @@ -1,31 +1,22 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration.service'; import { DataGatheringService } from '@ghostfolio/api/services/data-gathering.service'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; -import { AlphaVantageService } from '@ghostfolio/api/services/data-provider/alpha-vantage/alpha-vantage.service'; -import { GhostfolioScraperApiService } from '@ghostfolio/api/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; -import { RakutenRapidApiService } from '@ghostfolio/api/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service'; -import { YahooFinanceService } from '@ghostfolio/api/services/data-provider/yahoo-finance/yahoo-finance.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service'; import { PrismaService } from '@ghostfolio/api/services/prisma.service'; import { Module } from '@nestjs/common'; import { AdminController } from './admin.controller'; import { AdminService } from './admin.service'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; @Module({ - imports: [], + imports: [DataProviderModule], controllers: [AdminController], providers: [ AdminService, - AlphaVantageService, ConfigurationService, DataGatheringService, - DataProviderService, ExchangeRateDataService, - GhostfolioScraperApiService, - PrismaService, - RakutenRapidApiService, - YahooFinanceService + PrismaService ] }) export class AdminModule {} diff --git a/apps/api/src/app/app.module.ts b/apps/api/src/app/app.module.ts index 8dff979e4..f71a7c222 100644 --- a/apps/api/src/app/app.module.ts +++ b/apps/api/src/app/app.module.ts @@ -9,11 +9,6 @@ import { ServeStaticModule } from '@nestjs/serve-static'; import { ConfigurationService } from '../services/configuration.service'; import { CronService } from '../services/cron.service'; import { DataGatheringService } from '../services/data-gathering.service'; -import { DataProviderService } from '../services/data-provider.service'; -import { AlphaVantageService } from '../services/data-provider/alpha-vantage/alpha-vantage.service'; -import { GhostfolioScraperApiService } from '../services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; -import { RakutenRapidApiService } from '../services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service'; -import { YahooFinanceService } from '../services/data-provider/yahoo-finance/yahoo-finance.service'; import { ExchangeRateDataService } from '../services/exchange-rate-data.service'; import { PrismaService } from '../services/prisma.service'; import { AccessModule } from './access/access.module'; @@ -33,6 +28,9 @@ import { RedisCacheModule } from './redis-cache/redis-cache.module'; import { SubscriptionModule } from './subscription/subscription.module'; import { SymbolModule } from './symbol/symbol.module'; import { UserModule } from './user/user.module'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { PrismaModule } from '@ghostfolio/api/services/prisma.module'; +import { ConfigurationModule } from '@ghostfolio/api/services/configuration.module'; @Module({ imports: [ @@ -68,20 +66,12 @@ import { UserModule } from './user/user.module'; }), SubscriptionModule, SymbolModule, - UserModule + UserModule, + DataProviderModule, + PrismaModule, + ConfigurationModule ], controllers: [AppController], - providers: [ - AlphaVantageService, - ConfigurationService, - CronService, - DataGatheringService, - DataProviderService, - ExchangeRateDataService, - GhostfolioScraperApiService, - PrismaService, - RakutenRapidApiService, - YahooFinanceService - ] + providers: [CronService, DataGatheringService, ExchangeRateDataService] }) export class AppModule {} diff --git a/apps/api/src/app/core/core.module.ts b/apps/api/src/app/core/core.module.ts index 2ae0ebf93..ea3a5b440 100644 --- a/apps/api/src/app/core/core.module.ts +++ b/apps/api/src/app/core/core.module.ts @@ -1,30 +1,15 @@ -import { ConfigurationService } from '@ghostfolio/api/services/configuration.service'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; -import { AlphaVantageService } from '@ghostfolio/api/services/data-provider/alpha-vantage/alpha-vantage.service'; -import { GhostfolioScraperApiService } from '@ghostfolio/api/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; -import { RakutenRapidApiService } from '@ghostfolio/api/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service'; -import { YahooFinanceService } from '@ghostfolio/api/services/data-provider/yahoo-finance/yahoo-finance.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service'; -import { PrismaService } from '@ghostfolio/api/services/prisma.service'; import { Module } from '@nestjs/common'; import { CurrentRateService } from './current-rate.service'; import { MarketDataService } from './market-data.service'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { ConfigurationModule } from '@ghostfolio/api/services/configuration.module'; +import { PrismaModule } from '@ghostfolio/api/services/prisma.module'; @Module({ - imports: [], + imports: [ConfigurationModule, DataProviderModule, PrismaModule], controllers: [], - providers: [ - AlphaVantageService, - ConfigurationService, - CurrentRateService, - DataProviderService, - ExchangeRateDataService, - GhostfolioScraperApiService, - MarketDataService, - PrismaService, - RakutenRapidApiService, - YahooFinanceService - ] + providers: [CurrentRateService, ExchangeRateDataService, MarketDataService] }) export class CoreModule {} diff --git a/apps/api/src/app/core/current-rate.service.spec.ts b/apps/api/src/app/core/current-rate.service.spec.ts index 271be25b9..a094f4f5c 100644 --- a/apps/api/src/app/core/current-rate.service.spec.ts +++ b/apps/api/src/app/core/current-rate.service.spec.ts @@ -1,5 +1,5 @@ import { CurrentRateService } from '@ghostfolio/api/app/core/current-rate.service'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; +import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service'; import { Currency, MarketData } from '@prisma/client'; diff --git a/apps/api/src/app/core/current-rate.service.ts b/apps/api/src/app/core/current-rate.service.ts index 7cab79808..9599511ee 100644 --- a/apps/api/src/app/core/current-rate.service.ts +++ b/apps/api/src/app/core/current-rate.service.ts @@ -1,7 +1,7 @@ import { GetValueObject } from '@ghostfolio/api/app/core/interfaces/get-value-object.interface'; import { GetValueParams } from '@ghostfolio/api/app/core/interfaces/get-value-params.interface'; import { GetValuesParams } from '@ghostfolio/api/app/core/interfaces/get-values-params.interface'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; +import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service'; import { resetHours } from '@ghostfolio/common/helper'; import { Injectable } from '@nestjs/common'; diff --git a/apps/api/src/app/experimental/experimental.module.ts b/apps/api/src/app/experimental/experimental.module.ts index 7394c70eb..fc9cdac34 100644 --- a/apps/api/src/app/experimental/experimental.module.ts +++ b/apps/api/src/app/experimental/experimental.module.ts @@ -1,34 +1,28 @@ import { AccountService } from '@ghostfolio/api/app/account/account.service'; import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module'; -import { ConfigurationService } from '@ghostfolio/api/services/configuration.service'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; -import { AlphaVantageService } from '@ghostfolio/api/services/data-provider/alpha-vantage/alpha-vantage.service'; -import { GhostfolioScraperApiService } from '@ghostfolio/api/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; -import { RakutenRapidApiService } from '@ghostfolio/api/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service'; -import { YahooFinanceService } from '@ghostfolio/api/services/data-provider/yahoo-finance/yahoo-finance.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service'; -import { PrismaService } from '@ghostfolio/api/services/prisma.service'; import { RulesService } from '@ghostfolio/api/services/rules.service'; import { Module } from '@nestjs/common'; import { ExperimentalController } from './experimental.controller'; import { ExperimentalService } from './experimental.service'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { ConfigurationModule } from '@ghostfolio/api/services/configuration.module'; +import { PrismaModule } from '@ghostfolio/api/services/prisma.module'; @Module({ - imports: [RedisCacheModule], + imports: [ + ConfigurationModule, + RedisCacheModule, + DataProviderModule, + PrismaModule + ], controllers: [ExperimentalController], providers: [ AccountService, - AlphaVantageService, - ConfigurationService, - DataProviderService, ExchangeRateDataService, ExperimentalService, - GhostfolioScraperApiService, - PrismaService, - RakutenRapidApiService, - RulesService, - YahooFinanceService + RulesService ] }) export class ExperimentalModule {} diff --git a/apps/api/src/app/experimental/experimental.service.ts b/apps/api/src/app/experimental/experimental.service.ts index 79a4427d0..c3846cb57 100644 --- a/apps/api/src/app/experimental/experimental.service.ts +++ b/apps/api/src/app/experimental/experimental.service.ts @@ -1,5 +1,5 @@ import { AccountService } from '@ghostfolio/api/app/account/account.service'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; +import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service'; import { PrismaService } from '@ghostfolio/api/services/prisma.service'; import { RulesService } from '@ghostfolio/api/services/rules.service'; diff --git a/apps/api/src/app/export/export.module.ts b/apps/api/src/app/export/export.module.ts index 2da4e566f..c84465998 100644 --- a/apps/api/src/app/export/export.module.ts +++ b/apps/api/src/app/export/export.module.ts @@ -2,31 +2,23 @@ import { CacheService } from '@ghostfolio/api/app/cache/cache.service'; import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module'; import { ConfigurationService } from '@ghostfolio/api/services/configuration.service'; import { DataGatheringService } from '@ghostfolio/api/services/data-gathering.service'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; -import { AlphaVantageService } from '@ghostfolio/api/services/data-provider/alpha-vantage/alpha-vantage.service'; -import { GhostfolioScraperApiService } from '@ghostfolio/api/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; -import { RakutenRapidApiService } from '@ghostfolio/api/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service'; -import { YahooFinanceService } from '@ghostfolio/api/services/data-provider/yahoo-finance/yahoo-finance.service'; import { PrismaService } from '@ghostfolio/api/services/prisma.service'; import { Module } from '@nestjs/common'; import { ExportController } from './export.controller'; import { ExportService } from './export.service'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { ConfigurationModule } from '@ghostfolio/api/services/configuration.module'; +import { PrismaModule } from '@ghostfolio/api/services/prisma.module'; @Module({ - imports: [RedisCacheModule], + imports: [ + ConfigurationModule, + RedisCacheModule, + DataProviderModule, + PrismaModule + ], controllers: [ExportController], - providers: [ - AlphaVantageService, - CacheService, - ConfigurationService, - DataGatheringService, - DataProviderService, - ExportService, - GhostfolioScraperApiService, - PrismaService, - RakutenRapidApiService, - YahooFinanceService - ] + providers: [CacheService, DataGatheringService, ExportService] }) export class ExportModule {} diff --git a/apps/api/src/app/import/import.module.ts b/apps/api/src/app/import/import.module.ts index 02efd6f51..a1e217f32 100644 --- a/apps/api/src/app/import/import.module.ts +++ b/apps/api/src/app/import/import.module.ts @@ -1,34 +1,23 @@ import { CacheService } from '@ghostfolio/api/app/cache/cache.service'; import { OrderService } from '@ghostfolio/api/app/order/order.service'; import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module'; -import { ConfigurationService } from '@ghostfolio/api/services/configuration.service'; import { DataGatheringService } from '@ghostfolio/api/services/data-gathering.service'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; -import { AlphaVantageService } from '@ghostfolio/api/services/data-provider/alpha-vantage/alpha-vantage.service'; -import { GhostfolioScraperApiService } from '@ghostfolio/api/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; -import { RakutenRapidApiService } from '@ghostfolio/api/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service'; -import { YahooFinanceService } from '@ghostfolio/api/services/data-provider/yahoo-finance/yahoo-finance.service'; -import { PrismaService } from '@ghostfolio/api/services/prisma.service'; import { Module } from '@nestjs/common'; import { ImportController } from './import.controller'; import { ImportService } from './import.service'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { ConfigurationModule } from '@ghostfolio/api/services/configuration.module'; +import { PrismaModule } from '@ghostfolio/api/services/prisma.module'; @Module({ - imports: [RedisCacheModule], + imports: [ + ConfigurationModule, + RedisCacheModule, + DataProviderModule, + PrismaModule + ], controllers: [ImportController], - providers: [ - AlphaVantageService, - CacheService, - ConfigurationService, - DataGatheringService, - DataProviderService, - GhostfolioScraperApiService, - ImportService, - OrderService, - PrismaService, - RakutenRapidApiService, - YahooFinanceService - ] + providers: [CacheService, DataGatheringService, ImportService, OrderService] }) export class ImportModule {} diff --git a/apps/api/src/app/order/order.module.ts b/apps/api/src/app/order/order.module.ts index 93bcd3cb3..ffb1b8dc4 100644 --- a/apps/api/src/app/order/order.module.ts +++ b/apps/api/src/app/order/order.module.ts @@ -1,10 +1,5 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration.service'; import { DataGatheringService } from '@ghostfolio/api/services/data-gathering.service'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; -import { AlphaVantageService } from '@ghostfolio/api/services/data-provider/alpha-vantage/alpha-vantage.service'; -import { GhostfolioScraperApiService } from '@ghostfolio/api/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; -import { RakutenRapidApiService } from '@ghostfolio/api/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service'; -import { YahooFinanceService } from '@ghostfolio/api/services/data-provider/yahoo-finance/yahoo-finance.service'; import { ImpersonationService } from '@ghostfolio/api/services/impersonation.service'; import { PrismaService } from '@ghostfolio/api/services/prisma.service'; import { Module } from '@nestjs/common'; @@ -13,22 +8,23 @@ import { CacheService } from '../cache/cache.service'; import { RedisCacheModule } from '../redis-cache/redis-cache.module'; import { OrderController } from './order.controller'; import { OrderService } from './order.service'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { ConfigurationModule } from '@ghostfolio/api/services/configuration.module'; +import { PrismaModule } from '@ghostfolio/api/services/prisma.module'; @Module({ - imports: [RedisCacheModule], + imports: [ + ConfigurationModule, + RedisCacheModule, + DataProviderModule, + PrismaModule + ], controllers: [OrderController], providers: [ - AlphaVantageService, CacheService, - ConfigurationService, DataGatheringService, - DataProviderService, - GhostfolioScraperApiService, ImpersonationService, - OrderService, - PrismaService, - RakutenRapidApiService, - YahooFinanceService + OrderService ] }) export class OrderModule {} diff --git a/apps/api/src/app/portfolio/portfolio.module.ts b/apps/api/src/app/portfolio/portfolio.module.ts index 3a4aa29e1..11710c639 100644 --- a/apps/api/src/app/portfolio/portfolio.module.ts +++ b/apps/api/src/app/portfolio/portfolio.module.ts @@ -5,46 +5,42 @@ import { MarketDataService } from '@ghostfolio/api/app/core/market-data.service' import { OrderService } from '@ghostfolio/api/app/order/order.service'; import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module'; import { UserService } from '@ghostfolio/api/app/user/user.service'; -import { ConfigurationService } from '@ghostfolio/api/services/configuration.service'; import { DataGatheringService } from '@ghostfolio/api/services/data-gathering.service'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; -import { AlphaVantageService } from '@ghostfolio/api/services/data-provider/alpha-vantage/alpha-vantage.service'; import { GhostfolioScraperApiService } from '@ghostfolio/api/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; -import { RakutenRapidApiService } from '@ghostfolio/api/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service'; -import { YahooFinanceService } from '@ghostfolio/api/services/data-provider/yahoo-finance/yahoo-finance.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service'; import { ImpersonationService } from '@ghostfolio/api/services/impersonation.service'; -import { PrismaService } from '@ghostfolio/api/services/prisma.service'; import { RulesService } from '@ghostfolio/api/services/rules.service'; import { SymbolProfileService } from '@ghostfolio/api/services/symbol-profile.service'; import { Module } from '@nestjs/common'; import { PortfolioController } from './portfolio.controller'; import { PortfolioService } from './portfolio.service'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { ConfigurationModule } from '@ghostfolio/api/services/configuration.module'; +import { PrismaModule } from '@ghostfolio/api/services/prisma.module'; @Module({ - imports: [RedisCacheModule], + imports: [ + ConfigurationModule, + RedisCacheModule, + DataProviderModule, + PrismaModule + ], controllers: [PortfolioController], providers: [ AccountService, - AlphaVantageService, CacheService, CurrentRateService, - ConfigurationService, DataGatheringService, - DataProviderService, ExchangeRateDataService, GhostfolioScraperApiService, ImpersonationService, MarketDataService, OrderService, PortfolioService, - PrismaService, - RakutenRapidApiService, RulesService, SymbolProfileService, - UserService, - YahooFinanceService + UserService ] }) export class PortfolioModule {} diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index ccb287e27..dd4780555 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -15,7 +15,7 @@ import { CurrencyClusterRiskBaseCurrencyInitialInvestment } from '@ghostfolio/ap import { CurrencyClusterRiskCurrentInvestment } from '@ghostfolio/api/models/rules/currency-cluster-risk/current-investment'; import { CurrencyClusterRiskInitialInvestment } from '@ghostfolio/api/models/rules/currency-cluster-risk/initial-investment'; import { FeeRatioInitialInvestment } from '@ghostfolio/api/models/rules/fees/fee-ratio-initial-investment'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; +import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service'; import { ImpersonationService } from '@ghostfolio/api/services/impersonation.service'; import { MarketState } from '@ghostfolio/api/services/interfaces/interfaces'; diff --git a/apps/api/src/app/symbol/symbol.module.ts b/apps/api/src/app/symbol/symbol.module.ts index 2fb3a9d76..d688f4d61 100644 --- a/apps/api/src/app/symbol/symbol.module.ts +++ b/apps/api/src/app/symbol/symbol.module.ts @@ -1,27 +1,14 @@ -import { ConfigurationService } from '@ghostfolio/api/services/configuration.service'; -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; -import { AlphaVantageService } from '@ghostfolio/api/services/data-provider/alpha-vantage/alpha-vantage.service'; -import { GhostfolioScraperApiService } from '@ghostfolio/api/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; -import { RakutenRapidApiService } from '@ghostfolio/api/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service'; -import { YahooFinanceService } from '@ghostfolio/api/services/data-provider/yahoo-finance/yahoo-finance.service'; -import { PrismaService } from '@ghostfolio/api/services/prisma.service'; import { Module } from '@nestjs/common'; import { SymbolController } from './symbol.controller'; import { SymbolService } from './symbol.service'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { ConfigurationModule } from '@ghostfolio/api/services/configuration.module'; +import { PrismaModule } from '@ghostfolio/api/services/prisma.module'; @Module({ - imports: [], + imports: [ConfigurationModule, DataProviderModule, PrismaModule], controllers: [SymbolController], - providers: [ - AlphaVantageService, - ConfigurationService, - DataProviderService, - GhostfolioScraperApiService, - PrismaService, - RakutenRapidApiService, - SymbolService, - YahooFinanceService - ] + providers: [SymbolService] }) export class SymbolModule {} diff --git a/apps/api/src/app/symbol/symbol.service.ts b/apps/api/src/app/symbol/symbol.service.ts index 0db0ba066..7fcafc4cc 100644 --- a/apps/api/src/app/symbol/symbol.service.ts +++ b/apps/api/src/app/symbol/symbol.service.ts @@ -1,4 +1,4 @@ -import { DataProviderService } from '@ghostfolio/api/services/data-provider.service'; +import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; import { PrismaService } from '@ghostfolio/api/services/prisma.service'; import { Injectable } from '@nestjs/common'; import { Currency, DataSource } from '@prisma/client'; diff --git a/apps/api/src/services/configuration.module.ts b/apps/api/src/services/configuration.module.ts new file mode 100644 index 000000000..f6d37309d --- /dev/null +++ b/apps/api/src/services/configuration.module.ts @@ -0,0 +1,8 @@ +import { Module } from '@nestjs/common'; +import { ConfigurationService } from '@ghostfolio/api/services/configuration.service'; + +@Module({ + providers: [ConfigurationService], + exports: [ConfigurationService] +}) +export class ConfigurationModule {} diff --git a/apps/api/src/services/data-gathering.service.ts b/apps/api/src/services/data-gathering.service.ts index f853e5dbc..eff9d3c21 100644 --- a/apps/api/src/services/data-gathering.service.ts +++ b/apps/api/src/services/data-gathering.service.ts @@ -19,7 +19,7 @@ import { } from 'date-fns'; import { ConfigurationService } from './configuration.service'; -import { DataProviderService } from './data-provider.service'; +import { DataProviderService } from './data-provider/data-provider.service'; import { GhostfolioScraperApiService } from './data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; import { IDataGatheringItem } from './interfaces/interfaces'; import { PrismaService } from './prisma.service'; diff --git a/apps/api/src/services/data-provider/data-provider.module.ts b/apps/api/src/services/data-provider/data-provider.module.ts new file mode 100644 index 000000000..fc45d770a --- /dev/null +++ b/apps/api/src/services/data-provider/data-provider.module.ts @@ -0,0 +1,21 @@ +import { Module } from '@nestjs/common'; +import { AlphaVantageService } from './alpha-vantage/alpha-vantage.service'; +import { DataProviderService } from './data-provider.service'; +import { GhostfolioScraperApiService } from '@ghostfolio/api/services/data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; +import { RakutenRapidApiService } from '@ghostfolio/api/services/data-provider/rakuten-rapid-api/rakuten-rapid-api.service'; +import { YahooFinanceService } from '@ghostfolio/api/services/data-provider/yahoo-finance/yahoo-finance.service'; +import { ConfigurationModule } from '@ghostfolio/api/services/configuration.module'; +import { PrismaModule } from '@ghostfolio/api/services/prisma.module'; + +@Module({ + imports: [ConfigurationModule, PrismaModule], + providers: [ + AlphaVantageService, + DataProviderService, + GhostfolioScraperApiService, + RakutenRapidApiService, + YahooFinanceService + ], + exports: [DataProviderService, GhostfolioScraperApiService] +}) +export class DataProviderModule {} diff --git a/apps/api/src/services/data-provider.service.ts b/apps/api/src/services/data-provider/data-provider.service.ts similarity index 91% rename from apps/api/src/services/data-provider.service.ts rename to apps/api/src/services/data-provider/data-provider.service.ts index 64f82bd40..fea10d5da 100644 --- a/apps/api/src/services/data-provider.service.ts +++ b/apps/api/src/services/data-provider/data-provider.service.ts @@ -9,17 +9,17 @@ import { Injectable } from '@nestjs/common'; import { DataSource, MarketData } from '@prisma/client'; import { format } from 'date-fns'; -import { ConfigurationService } from './configuration.service'; -import { AlphaVantageService } from './data-provider/alpha-vantage/alpha-vantage.service'; -import { GhostfolioScraperApiService } from './data-provider/ghostfolio-scraper-api/ghostfolio-scraper-api.service'; -import { RakutenRapidApiService } from './data-provider/rakuten-rapid-api/rakuten-rapid-api.service'; -import { YahooFinanceService } from './data-provider/yahoo-finance/yahoo-finance.service'; +import { ConfigurationService } from '../configuration.service'; +import { AlphaVantageService } from './alpha-vantage/alpha-vantage.service'; +import { GhostfolioScraperApiService } from './ghostfolio-scraper-api/ghostfolio-scraper-api.service'; +import { RakutenRapidApiService } from './rakuten-rapid-api/rakuten-rapid-api.service'; +import { YahooFinanceService } from './yahoo-finance/yahoo-finance.service'; import { IDataGatheringItem, IDataProviderHistoricalResponse, IDataProviderResponse -} from './interfaces/interfaces'; -import { PrismaService } from './prisma.service'; +} from '../interfaces/interfaces'; +import { PrismaService } from '../prisma.service'; @Injectable() export class DataProviderService { diff --git a/apps/api/src/services/exchange-rate-data.service.ts b/apps/api/src/services/exchange-rate-data.service.ts index cc3fc4cb1..afb6ea122 100644 --- a/apps/api/src/services/exchange-rate-data.service.ts +++ b/apps/api/src/services/exchange-rate-data.service.ts @@ -5,7 +5,7 @@ import { Currency } from '@prisma/client'; import { format } from 'date-fns'; import { isNumber } from 'lodash'; -import { DataProviderService } from './data-provider.service'; +import { DataProviderService } from './data-provider/data-provider.service'; @Injectable() export class ExchangeRateDataService { diff --git a/apps/api/src/services/prisma.module.ts b/apps/api/src/services/prisma.module.ts new file mode 100644 index 000000000..fa543b636 --- /dev/null +++ b/apps/api/src/services/prisma.module.ts @@ -0,0 +1,8 @@ +import { Module } from '@nestjs/common'; +import { PrismaService } from '@ghostfolio/api/services/prisma.service'; + +@Module({ + providers: [PrismaService], + exports: [PrismaService] +}) +export class PrismaModule {}