diff --git a/apps/api/src/app/activities/activities.controller.ts b/apps/api/src/app/activities/activities.controller.ts index daade2a59..a1b559c84 100644 --- a/apps/api/src/app/activities/activities.controller.ts +++ b/apps/api/src/app/activities/activities.controller.ts @@ -62,7 +62,16 @@ export class ActivitiesController { @UseInterceptors(TransformDataSourceInRequestInterceptor) public async deleteActivities( @Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId: string, - @Query() query: ActivitiesFilterDto + @Query() + { + accounts, + activityTypes, + assetClasses, + dataSource, + range, + symbol, + tags + }: ActivitiesFilterDto ): Promise { if (impersonationId) { throw new HttpException( @@ -74,25 +83,25 @@ export class ActivitiesController { let endDate: Date; let startDate: Date; - if (query.range) { + if (range) { ({ endDate, startDate } = getIntervalFromDateRange({ - dateRange: query.range + dateRange: range })); } const filters = this.apiService.buildFiltersFromQueryParams({ - filterByAccounts: query.accounts, - filterByAssetClasses: query.assetClasses, - filterByDataSource: query.dataSource, - filterBySymbol: query.symbol, - filterByTags: query.tags + filterByAccounts: accounts, + filterByAssetClasses: assetClasses, + filterByDataSource: dataSource, + filterBySymbol: symbol, + filterByTags: tags }); return this.activitiesService.deleteActivities({ endDate, filters, startDate, - types: query.activityTypes, + types: activityTypes, userId: this.request.user.id }); } @@ -125,23 +134,36 @@ export class ActivitiesController { @UseInterceptors(TransformDataSourceInResponseInterceptor) public async getAllActivities( @Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId: string, - @Query() query: GetActivitiesDto + @Query() + { + accounts, + activityTypes, + assetClasses, + dataSource, + range, + skip, + sortColumn, + sortDirection, + symbol, + tags, + take + }: GetActivitiesDto ): Promise { let endDate: Date; let startDate: Date; - if (query.range) { + if (range) { ({ endDate, startDate } = getIntervalFromDateRange({ - dateRange: query.range + dateRange: range })); } const filters = this.apiService.buildFiltersFromQueryParams({ - filterByAccounts: query.accounts, - filterByAssetClasses: query.assetClasses, - filterByDataSource: query.dataSource, - filterBySymbol: query.symbol, - filterByTags: query.tags + filterByAccounts: accounts, + filterByAssetClasses: assetClasses, + filterByDataSource: dataSource, + filterBySymbol: symbol, + filterByTags: tags }); const impersonationUserId = @@ -152,14 +174,14 @@ export class ActivitiesController { const { activities, count } = await this.activitiesService.getActivities({ endDate, filters, + skip, + sortColumn, + sortDirection, startDate, + take, userCurrency, includeDrafts: true, - skip: query.skip, - sortColumn: query.sortColumn, - sortDirection: query.sortDirection, - take: query.take, - types: query.activityTypes, + types: activityTypes, userId: impersonationUserId || this.request.user.id, withExcludedAccountsAndActivities: true }); diff --git a/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts index 6e5f48d63..0cdca8110 100644 --- a/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts @@ -90,7 +90,7 @@ export class GhostfolioController { @Version('2') public async getDividends( @Param('symbol') symbol: string, - @Query() query: GetDividendsDto + @Query() { from, granularity, to }: GetDividendsDto ): Promise { const maxDailyRequests = await this.ghostfolioService.getMaxDailyRequests(); @@ -105,10 +105,10 @@ export class GhostfolioController { try { const dividends = await this.ghostfolioService.getDividends({ + granularity, symbol, - from: parseDate(query.from), - granularity: query.granularity, - to: parseDate(query.to) + from: parseDate(from), + to: parseDate(to) }); await this.ghostfolioService.incrementDailyRequests({ @@ -130,7 +130,7 @@ export class GhostfolioController { @Version('2') public async getHistorical( @Param('symbol') symbol: string, - @Query() query: GetHistoricalDto + @Query() { from, granularity, to }: GetHistoricalDto ): Promise { const maxDailyRequests = await this.ghostfolioService.getMaxDailyRequests(); @@ -145,10 +145,10 @@ export class GhostfolioController { try { const historicalData = await this.ghostfolioService.getHistorical({ + granularity, symbol, - from: parseDate(query.from), - granularity: query.granularity, - to: parseDate(query.to) + from: parseDate(from), + to: parseDate(to) }); await this.ghostfolioService.incrementDailyRequests({ @@ -247,7 +247,7 @@ export class GhostfolioController { @UseGuards(AuthGuard('api-key'), HasPermissionGuard) @Version('2') public async getQuotes( - @Query() query: GetQuotesDto + @Query() { symbols }: GetQuotesDto ): Promise { const maxDailyRequests = await this.ghostfolioService.getMaxDailyRequests(); @@ -262,7 +262,7 @@ export class GhostfolioController { try { const quotes = await this.ghostfolioService.getQuotes({ - symbols: query.symbols + symbols }); await this.ghostfolioService.incrementDailyRequests({ diff --git a/apps/api/src/app/export/export.controller.ts b/apps/api/src/app/export/export.controller.ts index f503088d4..27218d03d 100644 --- a/apps/api/src/app/export/export.controller.ts +++ b/apps/api/src/app/export/export.controller.ts @@ -32,30 +32,42 @@ export class ExportController { @UseGuards(AuthGuard('jwt'), HasPermissionGuard) @UseInterceptors(TransformDataSourceInRequestInterceptor) @UseInterceptors(TransformDataSourceInResponseInterceptor) - public async export(@Query() query: GetExportDto): Promise { + public async export( + @Query() + { + accounts, + activityIds, + activityTypes, + assetClasses, + dataSource, + range, + symbol, + tags + }: GetExportDto + ): Promise { let endDate: Date; let startDate: Date; - if (query.range) { + if (range) { ({ endDate, startDate } = getIntervalFromDateRange({ - dateRange: query.range + dateRange: range })); } const filters = this.apiService.buildFiltersFromQueryParams({ - filterByAccounts: query.accounts, - filterByAssetClasses: query.assetClasses, - filterByDataSource: query.dataSource, - filterBySymbol: query.symbol, - filterByTags: query.tags + filterByAccounts: accounts, + filterByAssetClasses: assetClasses, + filterByDataSource: dataSource, + filterBySymbol: symbol, + filterByTags: tags }); return this.exportService.export({ + activityIds, + activityTypes, endDate, filters, startDate, - activityIds: query.activityIds, - activityTypes: query.activityTypes, userId: this.request.user.id, userSettings: this.request.user.settings.settings });