Browse Source

feat: add AssetProfileIdentifierDto and update access DTOs to use it

pull/5848/head
Germán Martín 1 month ago
parent
commit
3e3c61da11
  1. 23
      apps/api/src/app/access/access-filter.dto.ts
  2. 9
      apps/api/src/app/access/create-access.dto.ts
  3. 9
      apps/api/src/app/access/update-access.dto.ts
  4. 10
      libs/common/src/lib/dto/asset-profile-identifier.dto.ts
  5. 1
      libs/common/src/lib/dto/index.ts

23
apps/api/src/app/access/access-filter.dto.ts

@ -1,20 +1,7 @@
import { DataSource } from '@prisma/client';
import { Type } from 'class-transformer';
import {
IsArray,
IsEnum,
IsOptional,
IsString,
ValidateNested
} from 'class-validator';
class HoldingFilterDto {
@IsEnum(DataSource)
dataSource: DataSource;
import { AssetProfileIdentifierDto } from '@ghostfolio/common/dto';
@IsString()
symbol: string;
}
import { Type } from 'class-transformer';
import { IsArray, IsOptional, IsString, ValidateNested } from 'class-validator';
export class AccessFilterDto {
@IsArray()
@ -29,9 +16,9 @@ export class AccessFilterDto {
@IsArray()
@IsOptional()
@Type(() => HoldingFilterDto)
@Type(() => AssetProfileIdentifierDto)
@ValidateNested({ each: true })
holdings?: HoldingFilterDto[];
holdings?: AssetProfileIdentifierDto[];
@IsArray()
@IsOptional()

9
apps/api/src/app/access/create-access.dto.ts

@ -1,7 +1,13 @@
import { AccessFilter } from '@ghostfolio/common/interfaces';
import { AccessPermission } from '@prisma/client';
import { IsEnum, IsOptional, IsString, IsUUID } from 'class-validator';
import {
IsEnum,
IsObject,
IsOptional,
IsString,
IsUUID
} from 'class-validator';
export class CreateAccessDto {
@IsOptional()
@ -9,6 +15,7 @@ export class CreateAccessDto {
alias?: string;
@IsOptional()
@IsObject()
filter?: AccessFilter;
@IsOptional()

9
apps/api/src/app/access/update-access.dto.ts

@ -1,7 +1,13 @@
import { AccessFilter } from '@ghostfolio/common/interfaces';
import { AccessPermission } from '@prisma/client';
import { IsEnum, IsOptional, IsString, IsUUID } from 'class-validator';
import {
IsEnum,
IsObject,
IsOptional,
IsString,
IsUUID
} from 'class-validator';
export class UpdateAccessDto {
@IsOptional()
@ -9,6 +15,7 @@ export class UpdateAccessDto {
alias?: string;
@IsOptional()
@IsObject()
filter?: AccessFilter;
@IsOptional()

10
libs/common/src/lib/dto/asset-profile-identifier.dto.ts

@ -0,0 +1,10 @@
import { DataSource } from '@prisma/client';
import { IsEnum, IsString } from 'class-validator';
export class AssetProfileIdentifierDto {
@IsEnum(DataSource)
dataSource: DataSource;
@IsString()
symbol: string;
}

1
libs/common/src/lib/dto/index.ts

@ -0,0 +1 @@
export * from './asset-profile-identifier.dto';
Loading…
Cancel
Save