Browse Source

Task/improve integer query parameter parsing in various controllers (#7189)

* Improve integer query parameter parsing of skip and take

* Update changelog
pull/7208/head^2
Shaik Aftab 2 weeks ago
committed by GitHub
parent
commit
f44f542019
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      CHANGELOG.md
  2. 9
      apps/api/src/app/admin/admin.controller.ts
  3. 9
      apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts

2
CHANGELOG.md

@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Restricted the modification of activity tags in the impersonation mode - Restricted the modification of activity tags in the impersonation mode
- Hardened the endpoint of the public access for portfolio sharing by restricting it to public accesses - Hardened the endpoint of the public access for portfolio sharing by restricting it to public accesses
- Improved the parsing of integer query parameters (`skip` and `take`) in the `GET api/v1/admin/user` endpoint
- Improved the parsing of integer query parameters (`skip` and `take`) in the `GET api/v1/asset-profiles` endpoint
- Improved the language localization by translating various tooltips across the application - Improved the language localization by translating various tooltips across the application
- Improved the language localization for Ukrainian (`uk`) - Improved the language localization for Ukrainian (`uk`)
- Upgraded `yahoo-finance2` from version `3.14.3` to `3.15.4` - Upgraded `yahoo-finance2` from version `3.14.3` to `3.15.4`

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

@ -40,6 +40,7 @@ import {
Inject, Inject,
Logger, Logger,
Param, Param,
ParseIntPipe,
Patch, Patch,
Post, Post,
Put, Put,
@ -319,12 +320,12 @@ export class AdminController {
@HasPermission(permissions.accessAdminControl) @HasPermission(permissions.accessAdminControl)
@UseGuards(AuthGuard('jwt'), HasPermissionGuard) @UseGuards(AuthGuard('jwt'), HasPermissionGuard)
public async getUsers( public async getUsers(
@Query('skip') skip?: number, @Query('skip', new ParseIntPipe({ optional: true })) skip?: number,
@Query('take') take?: number @Query('take', new ParseIntPipe({ optional: true })) take?: number
): Promise<AdminUsersResponse> { ): Promise<AdminUsersResponse> {
return this.adminService.getUsers({ return this.adminService.getUsers({
skip: isNaN(skip) ? undefined : skip, skip,
take: isNaN(take) ? undefined : take take
}); });
} }

9
apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts

@ -22,6 +22,7 @@ import {
HttpException, HttpException,
Inject, Inject,
Param, Param,
ParseIntPipe,
Patch, Patch,
Query, Query,
UseGuards, UseGuards,
@ -51,10 +52,10 @@ export class AssetProfilesController {
@Query('dataSource') filterByDataSource?: string, @Query('dataSource') filterByDataSource?: string,
@Query('presetId') presetId?: MarketDataPreset, @Query('presetId') presetId?: MarketDataPreset,
@Query('query') filterBySearchQuery?: string, @Query('query') filterBySearchQuery?: string,
@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('take') take?: number @Query('take', new ParseIntPipe({ optional: true })) take?: number
): Promise<AssetProfilesResponse> { ): Promise<AssetProfilesResponse> {
const filters = this.apiService.buildFiltersFromQueryParams({ const filters = this.apiService.buildFiltersFromQueryParams({
filterByAssetSubClasses, filterByAssetSubClasses,
@ -65,10 +66,10 @@ export class AssetProfilesController {
return this.assetProfilesService.getAssetProfiles({ return this.assetProfilesService.getAssetProfiles({
filters, filters,
presetId, presetId,
skip,
sortColumn, sortColumn,
sortDirection, sortDirection,
skip: isNaN(skip) ? undefined : skip, take
take: isNaN(take) ? undefined : take
}); });
} }

Loading…
Cancel
Save