Browse Source

Harden validation of scraper configuration

pull/7322/head
Thomas Kaul 2 days ago
parent
commit
a4de762da8
  1. 2
      libs/common/src/lib/dtos/index.ts
  2. 35
      libs/common/src/lib/dtos/scraper-configuration.dto.ts
  3. 3
      libs/common/src/lib/dtos/update-asset-profile.dto.ts

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 { ScraperConfigurationDto } from './scraper-configuration.dto';
import { SectorDto } from './sector.dto';
import { TransferBalanceDto } from './transfer-balance.dto';
import { UpdateAccessDto } from './update-access.dto';
@ -40,6 +41,7 @@ export {
CreateTagDto,
CreateWatchlistItemDto,
DeleteOwnUserDto,
ScraperConfigurationDto,
SectorDto,
TransferBalanceDto,
UpdateAccessDto,

35
libs/common/src/lib/dtos/scraper-configuration.dto.ts

@ -0,0 +1,35 @@
import {
IsIn,
IsNumber,
IsObject,
IsOptional,
IsString,
IsUrl
} from 'class-validator';
export class ScraperConfigurationDto {
@IsNumber()
@IsOptional()
defaultMarketPrice?: number;
@IsObject()
@IsOptional()
headers?: { [key: string]: string };
@IsOptional()
@IsString()
locale?: string;
@IsIn(['instant', 'lazy'])
@IsOptional()
mode?: 'instant' | 'lazy';
@IsString()
selector: string;
@IsUrl({
protocols: ['http', 'https'],
require_protocol: true
})
url: string;
}

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 { ScraperConfigurationDto } from './scraper-configuration.dto';
import { SectorDto } from './sector.dto';
export class UpdateAssetProfileDto {
@ -67,6 +68,8 @@ export class UpdateAssetProfileDto {
@IsObject()
@IsOptional()
@Type(() => ScraperConfigurationDto)
@ValidateNested()
scraperConfiguration?: Prisma.InputJsonObject;
@IsArray()

Loading…
Cancel
Save