Browse Source

improve/replace manual isNaN validation with ParseIntPipe in activities controller

pull/7183/head
AkashNegi1 2 weeks ago
parent
commit
af0721ce12
  1. 1
      CHANGELOG.md
  2. 9
      apps/api/src/app/activities/activities.controller.ts

1
CHANGELOG.md

@ -22,6 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed ### Fixed
- Fixed the validation of the `skip` and `take` query parameters in the activities controller to use `ParseIntPipe`
- Fixed the validation of the data source field of an asset profile with market data - Fixed the validation of the data source field of an asset profile with market data
- Fixed a recurring issue where single-value fields were incorrectly validated as arrays in various endpoints - Fixed a recurring issue where single-value fields were incorrectly validated as arrays in various endpoints

9
apps/api/src/app/activities/activities.controller.ts

@ -29,6 +29,7 @@ import {
HttpException, HttpException,
Inject, Inject,
Param, Param,
ParseIntPipe,
Post, Post,
Put, Put,
Query, Query,
@ -112,12 +113,12 @@ export class ActivitiesController {
@Query('assetClasses') filterByAssetClasses?: string, @Query('assetClasses') filterByAssetClasses?: string,
@Query('dataSource') filterByDataSource?: string, @Query('dataSource') filterByDataSource?: string,
@Query('range') dateRange?: DateRange, @Query('range') dateRange?: DateRange,
@Query('skip') skip?: number, @Query('skip', new ParseIntPipe({ optional: true })) skip?: number,
@Query('sortColumn') sortColumn?: string, @Query('sortColumn') sortColumn?: string,
@Query('sortDirection') sortDirection?: Prisma.SortOrder, @Query('sortDirection') sortDirection?: Prisma.SortOrder,
@Query('symbol') filterBySymbol?: string, @Query('symbol') filterBySymbol?: string,
@Query('tags') filterByTags?: string, @Query('tags') filterByTags?: string,
@Query('take') take?: number @Query('take', new ParseIntPipe({ optional: true })) take?: number
): Promise<ActivitiesResponse> { ): Promise<ActivitiesResponse> {
let endDate: Date; let endDate: Date;
let startDate: Date; let startDate: Date;
@ -150,8 +151,8 @@ export class ActivitiesController {
types, types,
userCurrency, userCurrency,
includeDrafts: true, includeDrafts: true,
skip: isNaN(skip) ? undefined : skip, skip,
take: isNaN(take) ? undefined : take, take,
userId: impersonationUserId || this.request.user.id, userId: impersonationUserId || this.request.user.id,
withExcludedAccountsAndActivities: true withExcludedAccountsAndActivities: true
}); });

Loading…
Cancel
Save