Size: a a a

NestJS — русскоязычное сообщество

2021 April 30

FP

Fink Ployd in NestJS — русскоязычное сообщество
ну и при запросе типа: /?dates[]=2020-01-01&dates[]=2020-02-01 в контроллере я получаю массив через query.dates
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
Это вопрос не решит, но красивее и правильнее будет. Теперь давай дальше, для решения задачи поговорим. А ну покажи точно ошибку про которую ты выше говорил, плюс я чет не вижу у тебя в DTO проверку на это ISO формат.
источник

FP

Fink Ployd in NestJS — русскоязычное сообщество
если в Dto я делаю так:
  @IsArray()
 @Type(() => Date)
 @IsISO8601({ each: true }) //*
 dates: Date[];

то в строке со звездочкой ругается такой ошибкой(на each:true):
Argument of type '{ each: boolean; }' is not assignable to parameter of type 'IsISO8601Options'.
 Object literal may only specify known properties, and 'each' does not exist in type 'IsISO8601Options'.
источник

FP

Fink Ployd in NestJS — русскоязычное сообщество
тк у @IsISO8601 может быть только опция strict, на строгую проверку даты на соотвествие
источник

FP

Fink Ployd in NestJS — русскоязычное сообщество
есть ощущение, что я не понимаю до конца как эта связка работает, но не совсем понятно где читать как правильно валидировать и трансформировать массив в данном случае. надо ли писать свой валидатор или можно как-то обойтись средствами class-validator и class-transformer ?
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
Тебе нужно так поставить:
@IsDateString()
но точнее я сейчас гляну у себя, я чет забыл что он там может принимать.
источник

FP

Fink Ployd in NestJS — русскоязычное сообщество
в документации написано что IsDateString является алиасом на IsISO8601
источник

FP

Fink Ployd in NestJS — русскоязычное сообщество
поэтому результат такой же получается
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
Сейчас все будет, сам попробую такое сделать. Или есть решение уже ?
источник

FP

Fink Ployd in NestJS — русскоязычное сообщество
как решить не знаю и даже не понимаю куда копать. весь день документацию читаю и не могу понять что делаю неправильно
источник

FP

Fink Ployd in NestJS — русскоязычное сообщество
сейчас даже важнее понять не как валидировать, а как трансформировать этот массив дат в массив timestamp'ов.
пробовал
@IsArray()
@Type(() => Date)
@Transform(({ value }) => value.getTime()) // value.getTime is not a function
dates: Date[];

и вот так
@IsArray()
@Type(() => Date)
@Transform(({ value }) => new Date(value).getTime()) // "dates must be an array", status code 400, Bad Request
dates: Date[];
источник

FP

Fink Ployd in NestJS — русскоязычное сообщество
с трансформацией разобрался, надо было делать так:
@Transform(({ value }) => value.map((v) => new Date(v).getTime()))

тк в value приходит весь массив, а не каждое значение
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
Только хотел написать )), делал пример
источник
2021 May 01

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
Два "дебила блин" ... 😂😂😂😂😂, читать нужно внимательно доку.
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
Work :) Там же сначала параметры для валидации даты и только потом остальное )))
источник

И

Илья | 😶 ☮️... in NestJS — русскоязычное сообщество
волк
источник

FP

Fink Ployd in NestJS — русскоязычное сообщество
СПАСИБО!
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
Я старый внучек, ты по простому говори - не понимаю я ваши шуточки.
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
Не за что, поздно уже, сам туплю.
источник

И

Илья | 😶 ☮️... in NestJS — русскоязычное сообщество
отдавай пенсию, старая
источник