From 68b5c997bae4c362542113c627d9dfa5e63a6500 Mon Sep 17 00:00:00 2001 From: Akash Negi <95514575+AkashNegi1@users.noreply.github.com> Date: Thu, 2 Jul 2026 23:56:48 +0530 Subject: [PATCH] Task/improve parsing of integer query parameters in GET api/v1/activities endpoint (#7183) * Improve parsing of integer query parameters * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/activities/activities.controller.ts | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 87453b691..23109b17a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated the _Privacy Policy_ - Updated the _Terms of Service_ +- Improved the parsing of integer query parameters (`skip` and `take`) in the `GET api/v1/activities` endpoint - Improved the language localization for German (`de`) - Improved the language localization for Japanese (`ja`) - Upgraded `@ionic/angular` from version `8.8.5` to `8.8.12` diff --git a/apps/api/src/app/activities/activities.controller.ts b/apps/api/src/app/activities/activities.controller.ts index e847f600d..d00dd7292 100644 --- a/apps/api/src/app/activities/activities.controller.ts +++ b/apps/api/src/app/activities/activities.controller.ts @@ -29,6 +29,7 @@ import { HttpException, Inject, Param, + ParseIntPipe, Post, Put, Query, @@ -112,12 +113,12 @@ export class ActivitiesController { @Query('assetClasses') filterByAssetClasses?: string, @Query('dataSource') filterByDataSource?: string, @Query('range') dateRange?: DateRange, - @Query('skip') skip?: number, + @Query('skip', new ParseIntPipe({ optional: true })) skip?: number, @Query('sortColumn') sortColumn?: string, @Query('sortDirection') sortDirection?: Prisma.SortOrder, @Query('symbol') filterBySymbol?: string, @Query('tags') filterByTags?: string, - @Query('take') take?: number + @Query('take', new ParseIntPipe({ optional: true })) take?: number ): Promise { let endDate: Date; let startDate: Date; @@ -144,14 +145,14 @@ export class ActivitiesController { const { activities, count } = await this.activitiesService.getActivities({ endDate, filters, + skip, sortColumn, sortDirection, startDate, + take, types, userCurrency, includeDrafts: true, - skip: isNaN(skip) ? undefined : skip, - take: isNaN(take) ? undefined : take, userId: impersonationUserId || this.request.user.id, withExcludedAccountsAndActivities: true });