где описываете обязательную валидацию всех полей, а потом от нее дженерик-хелперами создаете какие то вариации? Или тут есть какие то подводные камни? Мне способ понравился, пока пользуюсь, но ни где про него ни чего не видел\слышал..
export class BaseDto {
@ApiProperty({})
@IsPositive()
@IsNumber()
readonly Id: number;
@ApiProperty({})
@IsString()
readonly foo: string;
@ApiProperty({})
@IsString()
readonly bar: string;
}
export class UpdateDto extends PartialType(BaseDto) {}
export class CreateDto extends PartialType(BaseDto) {}
Ну или вот пример реальный
export class CloneConsumableDto extends IntersectionType(
PickType(BaseConsumableDto, ['name', 'carId', 'categoryId', 'isUsed']),
PartialType(
OmitType(BaseConsumableDto, ['name', 'carId', 'categoryId', 'isUsed']),
),
) {}
Ты вроде призму используешь, а как ответ возвращаешь? Вручную в класс DTO оборачиваешь?
Главное чтобы в контроллере был указан ДТО, возвращаю из призмы интерфейсы, когда отличающиеся ДТО то делаю мапинг статик метод, User.toDto(тут указан тип интерфейса из бд)
Обсуждают сегодня