Browse Source

Harden validation of holdings

pull/7320/head
Thomas Kaul 2 days ago
parent
commit
2033c125a5
  1. 3
      libs/common/src/lib/dtos/create-asset-profile.dto.ts
  2. 11
      libs/common/src/lib/dtos/holding.dto.ts
  3. 2
      libs/common/src/lib/dtos/index.ts
  4. 3
      libs/common/src/lib/dtos/update-asset-profile.dto.ts

3
libs/common/src/lib/dtos/create-asset-profile.dto.ts

@ -13,6 +13,7 @@ import {
} from 'class-validator';
import { CountryDto } from './country.dto';
import { HoldingDto } from './holding.dto';
export class CreateAssetProfileDto {
@IsEnum(AssetClass)
@ -57,6 +58,8 @@ export class CreateAssetProfileDto {
@IsArray()
@IsOptional()
@Type(() => HoldingDto)
@ValidateNested({ each: true })
holdings?: Prisma.InputJsonArray;
@IsBoolean()

11
libs/common/src/lib/dtos/holding.dto.ts

@ -0,0 +1,11 @@
import { IsNumber, IsString, Max, Min } from 'class-validator';
export class HoldingDto {
@IsNumber()
@Max(1)
@Min(0)
allocationInPercentage: number;
@IsString()
name: string;
}

2
libs/common/src/lib/dtos/index.ts

@ -11,6 +11,7 @@ import { CreatePlatformDto } from './create-platform.dto';
import { CreateTagDto } from './create-tag.dto';
import { CreateWatchlistItemDto } from './create-watchlist-item.dto';
import { DeleteOwnUserDto } from './delete-own-user.dto';
import { HoldingDto } from './holding.dto';
import { TransferBalanceDto } from './transfer-balance.dto';
import { UpdateAccessDto } from './update-access.dto';
import { UpdateAccountDto } from './update-account.dto';
@ -39,6 +40,7 @@ export {
CreateTagDto,
CreateWatchlistItemDto,
DeleteOwnUserDto,
HoldingDto,
TransferBalanceDto,
UpdateAccessDto,
UpdateAccountDto,

3
libs/common/src/lib/dtos/update-asset-profile.dto.ts

@ -20,6 +20,7 @@ import {
} from 'class-validator';
import { CountryDto } from './country.dto';
import { HoldingDto } from './holding.dto';
export class UpdateAssetProfileDto {
@IsEnum(AssetClass)
@ -54,6 +55,8 @@ export class UpdateAssetProfileDto {
@IsArray()
@IsOptional()
@Type(() => HoldingDto)
@ValidateNested({ each: true })
holdings?: Prisma.InputJsonArray;
@IsBoolean()

Loading…
Cancel
Save