Browse Source

Task/move export / health / import controllers to endpoints (#8276)

Move export, health and import controllers to endpoints
main
Thomas Kaul 17 hours ago
committed by GitHub
parent
commit
90c90e179e
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 6
      apps/api/src/app/app.module.ts
  2. 0
      apps/api/src/app/endpoints/export/export.controller.ts
  3. 0
      apps/api/src/app/endpoints/export/export.module.ts
  4. 0
      apps/api/src/app/endpoints/export/export.service.ts
  5. 0
      apps/api/src/app/endpoints/export/get-export.dto.ts
  6. 0
      apps/api/src/app/endpoints/health/health.controller.ts
  7. 0
      apps/api/src/app/endpoints/health/health.module.ts
  8. 0
      apps/api/src/app/endpoints/health/health.service.ts
  9. 5
      apps/api/src/app/endpoints/import/import.controller.ts
  10. 17
      apps/api/src/app/endpoints/import/import.module.ts
  11. 2
      apps/api/src/app/endpoints/mcp/mcp.module.ts
  12. 4
      apps/api/src/app/endpoints/mcp/mcp.service.spec.ts
  13. 2
      apps/api/src/app/endpoints/mcp/mcp.service.ts
  14. 2
      apps/api/src/filters/mcp-tool-exception.filter.spec.ts
  15. 4
      apps/api/src/services/data-provider/data-provider.service.ts
  16. 0
      apps/api/src/services/import/errors/import-validation.error.ts
  17. 0
      apps/api/src/services/import/import-data.dto.spec.ts
  18. 0
      apps/api/src/services/import/import-data.dto.ts
  19. 12
      apps/api/src/services/import/import.module.ts
  20. 0
      apps/api/src/services/import/import.service.spec.ts
  21. 0
      apps/api/src/services/import/import.service.ts
  22. 0
      apps/api/src/services/import/interfaces/asset-profile-to-create.interface.ts

6
apps/api/src/app/app.module.ts

@ -50,6 +50,9 @@ import { BenchmarksModule } from './endpoints/benchmarks/benchmarks.module';
import { CacheModule } from './endpoints/cache/cache.module'; import { CacheModule } from './endpoints/cache/cache.module';
import { GhostfolioModule } from './endpoints/data-providers/ghostfolio/ghostfolio.module'; import { GhostfolioModule } from './endpoints/data-providers/ghostfolio/ghostfolio.module';
import { ExchangeRatesModule } from './endpoints/exchange-rates/exchange-rates.module'; import { ExchangeRatesModule } from './endpoints/exchange-rates/exchange-rates.module';
import { ExportModule } from './endpoints/export/export.module';
import { HealthModule } from './endpoints/health/health.module';
import { ImportModule } from './endpoints/import/import.module';
import { InfoModule } from './endpoints/info/info.module'; import { InfoModule } from './endpoints/info/info.module';
import { LogoModule } from './endpoints/logo/logo.module'; import { LogoModule } from './endpoints/logo/logo.module';
import { MarketDataModule } from './endpoints/market-data/market-data.module'; import { MarketDataModule } from './endpoints/market-data/market-data.module';
@ -59,9 +62,6 @@ import { PublicModule } from './endpoints/public/public.module';
import { SitemapModule } from './endpoints/sitemap/sitemap.module'; import { SitemapModule } from './endpoints/sitemap/sitemap.module';
import { TagsModule } from './endpoints/tags/tags.module'; import { TagsModule } from './endpoints/tags/tags.module';
import { WatchlistModule } from './endpoints/watchlist/watchlist.module'; import { WatchlistModule } from './endpoints/watchlist/watchlist.module';
import { ExportModule } from './export/export.module';
import { HealthModule } from './health/health.module';
import { ImportModule } from './import/import.module';
import { PortfolioModule } from './portfolio/portfolio.module'; import { PortfolioModule } from './portfolio/portfolio.module';
import { SubscriptionModule } from './subscription/subscription.module'; import { SubscriptionModule } from './subscription/subscription.module';
import { SymbolModule } from './symbol/symbol.module'; import { SymbolModule } from './symbol/symbol.module';

0
apps/api/src/app/export/export.controller.ts → apps/api/src/app/endpoints/export/export.controller.ts

0
apps/api/src/app/export/export.module.ts → apps/api/src/app/endpoints/export/export.module.ts

0
apps/api/src/app/export/export.service.ts → apps/api/src/app/endpoints/export/export.service.ts

0
apps/api/src/app/export/get-export.dto.ts → apps/api/src/app/endpoints/export/get-export.dto.ts

0
apps/api/src/app/health/health.controller.ts → apps/api/src/app/endpoints/health/health.controller.ts

0
apps/api/src/app/health/health.module.ts → apps/api/src/app/endpoints/health/health.module.ts

0
apps/api/src/app/health/health.service.ts → apps/api/src/app/endpoints/health/health.service.ts

5
apps/api/src/app/import/import.controller.ts → apps/api/src/app/endpoints/import/import.controller.ts

@ -2,6 +2,8 @@ import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorat
import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard'; import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard';
import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor'; import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor'; import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor';
import { ImportDataDto } from '@ghostfolio/api/services/import/import-data.dto';
import { ImportService } from '@ghostfolio/api/services/import/import.service';
import { ImportResponse } from '@ghostfolio/common/interfaces'; import { ImportResponse } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import type { RequestWithUser } from '@ghostfolio/common/types'; import type { RequestWithUser } from '@ghostfolio/common/types';
@ -24,9 +26,6 @@ import { AuthGuard } from '@nestjs/passport';
import { DataSource } from '@prisma/client'; import { DataSource } from '@prisma/client';
import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { StatusCodes, getReasonPhrase } from 'http-status-codes';
import { ImportDataDto } from './import-data.dto';
import { ImportService } from './import.service';
@Controller('import') @Controller('import')
export class ImportController { export class ImportController {
private readonly logger = new Logger(ImportController.name); private readonly logger = new Logger(ImportController.name);

17
apps/api/src/app/endpoints/import/import.module.ts

@ -0,0 +1,17 @@
import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module';
import { TransformDataSourceInResponseModule } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.module';
import { ImportModule as ImportServiceModule } from '@ghostfolio/api/services/import/import.module';
import { Module } from '@nestjs/common';
import { ImportController } from './import.controller';
@Module({
controllers: [ImportController],
imports: [
ImportServiceModule,
TransformDataSourceInRequestModule,
TransformDataSourceInResponseModule
]
})
export class ImportModule {}

2
apps/api/src/app/endpoints/mcp/mcp.module.ts

@ -1,6 +1,5 @@
import { AccountBalanceModule } from '@ghostfolio/api/app/account-balance/account-balance.module'; import { AccountBalanceModule } from '@ghostfolio/api/app/account-balance/account-balance.module';
import { AccountModule } from '@ghostfolio/api/app/account/account.module'; import { AccountModule } from '@ghostfolio/api/app/account/account.module';
import { ImportModule } from '@ghostfolio/api/app/import/import.module';
import { SymbolModule } from '@ghostfolio/api/app/symbol/symbol.module'; import { SymbolModule } from '@ghostfolio/api/app/symbol/symbol.module';
import { UserModule } from '@ghostfolio/api/app/user/user.module'; import { UserModule } from '@ghostfolio/api/app/user/user.module';
import { environment } from '@ghostfolio/api/environments/environment'; import { environment } from '@ghostfolio/api/environments/environment';
@ -8,6 +7,7 @@ import { getMcpUserOfBearerToken } from '@ghostfolio/api/helper/bearer-token.hel
import { ApiModule } from '@ghostfolio/api/services/api/api.module'; import { ApiModule } from '@ghostfolio/api/services/api/api.module';
import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module'; import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
import { ImportModule } from '@ghostfolio/api/services/import/import.module';
import { PortfolioTableModule } from '@ghostfolio/api/services/portfolio-table/portfolio-table.module'; import { PortfolioTableModule } from '@ghostfolio/api/services/portfolio-table/portfolio-table.module';
import { PortfolioTableService } from '@ghostfolio/api/services/portfolio-table/portfolio-table.service'; import { PortfolioTableService } from '@ghostfolio/api/services/portfolio-table/portfolio-table.service';
import { MCP_ENDPOINT } from '@ghostfolio/common/config'; import { MCP_ENDPOINT } from '@ghostfolio/common/config';

4
apps/api/src/app/endpoints/mcp/mcp.service.spec.ts

@ -1,13 +1,13 @@
import { AccountBalanceService } from '@ghostfolio/api/app/account-balance/account-balance.service'; import { AccountBalanceService } from '@ghostfolio/api/app/account-balance/account-balance.service';
import { AccountService } from '@ghostfolio/api/app/account/account.service'; import { AccountService } from '@ghostfolio/api/app/account/account.service';
import { ImportValidationError } from '@ghostfolio/api/app/import/errors/import-validation.error';
import { ImportService } from '@ghostfolio/api/app/import/import.service';
import { SymbolService } from '@ghostfolio/api/app/symbol/symbol.service'; import { SymbolService } from '@ghostfolio/api/app/symbol/symbol.service';
import { UserService } from '@ghostfolio/api/app/user/user.service'; import { UserService } from '@ghostfolio/api/app/user/user.service';
import { CallerFacingError } from '@ghostfolio/api/errors/caller-facing.error'; import { CallerFacingError } from '@ghostfolio/api/errors/caller-facing.error';
import { encodeDataSource } from '@ghostfolio/api/helper/data-source.helper'; import { encodeDataSource } from '@ghostfolio/api/helper/data-source.helper';
import { ApiService } from '@ghostfolio/api/services/api/api.service'; import { ApiService } from '@ghostfolio/api/services/api/api.service';
import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
import { ImportValidationError } from '@ghostfolio/api/services/import/errors/import-validation.error';
import { ImportService } from '@ghostfolio/api/services/import/import.service';
import { PortfolioTableService } from '@ghostfolio/api/services/portfolio-table/portfolio-table.service'; import { PortfolioTableService } from '@ghostfolio/api/services/portfolio-table/portfolio-table.service';
import { import {
DEFAULT_LANGUAGE_CODE, DEFAULT_LANGUAGE_CODE,

2
apps/api/src/app/endpoints/mcp/mcp.service.ts

@ -1,6 +1,5 @@
import { AccountBalanceService } from '@ghostfolio/api/app/account-balance/account-balance.service'; import { AccountBalanceService } from '@ghostfolio/api/app/account-balance/account-balance.service';
import { AccountService } from '@ghostfolio/api/app/account/account.service'; import { AccountService } from '@ghostfolio/api/app/account/account.service';
import { ImportService } from '@ghostfolio/api/app/import/import.service';
import { SymbolService } from '@ghostfolio/api/app/symbol/symbol.service'; import { SymbolService } from '@ghostfolio/api/app/symbol/symbol.service';
import { UserService } from '@ghostfolio/api/app/user/user.service'; import { UserService } from '@ghostfolio/api/app/user/user.service';
import { CallerFacingError } from '@ghostfolio/api/errors/caller-facing.error'; import { CallerFacingError } from '@ghostfolio/api/errors/caller-facing.error';
@ -10,6 +9,7 @@ import {
} from '@ghostfolio/api/helper/data-source.helper'; } from '@ghostfolio/api/helper/data-source.helper';
import { ApiService } from '@ghostfolio/api/services/api/api.service'; import { ApiService } from '@ghostfolio/api/services/api/api.service';
import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
import { ImportService } from '@ghostfolio/api/services/import/import.service';
import { PortfolioTableService } from '@ghostfolio/api/services/portfolio-table/portfolio-table.service'; import { PortfolioTableService } from '@ghostfolio/api/services/portfolio-table/portfolio-table.service';
import { getIntervalFromDateRange } from '@ghostfolio/common/calculation-helper'; import { getIntervalFromDateRange } from '@ghostfolio/common/calculation-helper';
import { DEFAULT_LANGUAGE_CODE } from '@ghostfolio/common/config'; import { DEFAULT_LANGUAGE_CODE } from '@ghostfolio/common/config';

2
apps/api/src/filters/mcp-tool-exception.filter.spec.ts

@ -1,5 +1,5 @@
import { ImportValidationError } from '@ghostfolio/api/app/import/errors/import-validation.error';
import { PortfolioSnapshotComputationError } from '@ghostfolio/api/app/portfolio/errors/portfolio-snapshot-computation.error'; import { PortfolioSnapshotComputationError } from '@ghostfolio/api/app/portfolio/errors/portfolio-snapshot-computation.error';
import { ImportValidationError } from '@ghostfolio/api/services/import/errors/import-validation.error';
import { ForbiddenException, Logger } from '@nestjs/common'; import { ForbiddenException, Logger } from '@nestjs/common';
import { getReasonPhrase, StatusCodes } from 'http-status-codes'; import { getReasonPhrase, StatusCodes } from 'http-status-codes';

4
apps/api/src/services/data-provider/data-provider.service.ts

@ -1,8 +1,8 @@
import { ImportValidationError } from '@ghostfolio/api/app/import/errors/import-validation.error';
import { ImportDataDto } from '@ghostfolio/api/app/import/import-data.dto';
import { getMaskedGhostfolioDataSource } from '@ghostfolio/api/helper/data-source.helper'; import { getMaskedGhostfolioDataSource } from '@ghostfolio/api/helper/data-source.helper';
import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
import { DataProviderInterface } from '@ghostfolio/api/services/data-provider/interfaces/data-provider.interface'; import { DataProviderInterface } from '@ghostfolio/api/services/data-provider/interfaces/data-provider.interface';
import { ImportValidationError } from '@ghostfolio/api/services/import/errors/import-validation.error';
import { ImportDataDto } from '@ghostfolio/api/services/import/import-data.dto';
import { MarketDataService } from '@ghostfolio/api/services/market-data/market-data.service'; import { MarketDataService } from '@ghostfolio/api/services/market-data/market-data.service';
import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service';
import { PropertyService } from '@ghostfolio/api/services/property/property.service'; import { PropertyService } from '@ghostfolio/api/services/property/property.service';

0
apps/api/src/app/import/errors/import-validation.error.ts → apps/api/src/services/import/errors/import-validation.error.ts

0
apps/api/src/app/import/import-data.dto.spec.ts → apps/api/src/services/import/import-data.dto.spec.ts

0
apps/api/src/app/import/import-data.dto.ts → apps/api/src/services/import/import-data.dto.ts

12
apps/api/src/app/import/import.module.ts → apps/api/src/services/import/import.module.ts

@ -1,27 +1,21 @@
import { AccountModule } from '@ghostfolio/api/app/account/account.module'; import { AccountModule } from '@ghostfolio/api/app/account/account.module';
import { ActivitiesModule } from '@ghostfolio/api/app/activities/activities.module'; import { ActivitiesModule } from '@ghostfolio/api/app/activities/activities.module';
import { PortfolioModule } from '@ghostfolio/api/app/portfolio/portfolio.module'; import { PortfolioModule } from '@ghostfolio/api/app/portfolio/portfolio.module';
import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module';
import { TransformDataSourceInResponseModule } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.module';
import { ApiModule } from '@ghostfolio/api/services/api/api.module'; import { ApiModule } from '@ghostfolio/api/services/api/api.module';
import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module'; import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module';
import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
import { ExchangeRateDataModule } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.module'; import { ExchangeRateDataModule } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.module';
import { MarketDataModule } from '@ghostfolio/api/services/market-data/market-data.module'; import { MarketDataModule } from '@ghostfolio/api/services/market-data/market-data.module';
import { PlatformModule } from '@ghostfolio/api/services/platform/platform.module'; import { PlatformModule } from '@ghostfolio/api/services/platform/platform.module';
import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module';
import { DataGatheringQueueModule } from '@ghostfolio/api/services/queues/data-gathering/data-gathering.module'; import { DataGatheringQueueModule } from '@ghostfolio/api/services/queues/data-gathering/data-gathering.module';
import { RedisCacheModule } from '@ghostfolio/api/services/redis-cache/redis-cache.module';
import { SymbolProfileModule } from '@ghostfolio/api/services/symbol-profile/symbol-profile.module'; import { SymbolProfileModule } from '@ghostfolio/api/services/symbol-profile/symbol-profile.module';
import { TagModule } from '@ghostfolio/api/services/tag/tag.module'; import { TagModule } from '@ghostfolio/api/services/tag/tag.module';
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { ImportController } from './import.controller';
import { ImportService } from './import.service'; import { ImportService } from './import.service';
@Module({ @Module({
controllers: [ImportController],
exports: [ImportService], exports: [ImportService],
imports: [ imports: [
AccountModule, AccountModule,
@ -34,12 +28,8 @@ import { ImportService } from './import.service';
MarketDataModule, MarketDataModule,
PlatformModule, PlatformModule,
PortfolioModule, PortfolioModule,
PrismaModule,
RedisCacheModule,
SymbolProfileModule, SymbolProfileModule,
TagModule, TagModule
TransformDataSourceInRequestModule,
TransformDataSourceInResponseModule
], ],
providers: [ImportService] providers: [ImportService]
}) })

0
apps/api/src/app/import/import.service.spec.ts → apps/api/src/services/import/import.service.spec.ts

0
apps/api/src/app/import/import.service.ts → apps/api/src/services/import/import.service.ts

0
apps/api/src/app/import/interfaces/asset-profile-to-create.interface.ts → apps/api/src/services/import/interfaces/asset-profile-to-create.interface.ts

Loading…
Cancel
Save