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

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

@ -1,7 +1,13 @@
import { AccessFilter } from '@ghostfolio/common/interfaces'; import { AccessFilter } from '@ghostfolio/common/interfaces';
import { AccessPermission } from '@prisma/client'; 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 { export class CreateAccessDto {
@IsOptional() @IsOptional()
@ -9,6 +15,7 @@ export class CreateAccessDto {
alias?: string; alias?: string;
@IsOptional() @IsOptional()
@IsObject()
filter?: AccessFilter; filter?: AccessFilter;
@IsOptional() @IsOptional()

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

@ -1,7 +1,13 @@
import { AccessFilter } from '@ghostfolio/common/interfaces'; import { AccessFilter } from '@ghostfolio/common/interfaces';
import { AccessPermission } from '@prisma/client'; 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 { export class UpdateAccessDto {
@IsOptional() @IsOptional()
@ -9,6 +15,7 @@ export class UpdateAccessDto {
alias?: string; alias?: string;
@IsOptional() @IsOptional()
@IsObject()
filter?: AccessFilter; filter?: AccessFilter;
@IsOptional() @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