Я пытаюсь найти достойный способ проверить схему по-разному для одного и того же объекта. Так я познакомился с группами validationOption
из класса-валидатора .
Согласно параметру Nest JS Body do c, он гласит:
Также применяет трубы к параметру связанного тела.
I иметь модель события, имеющую свойство status . При создании события (POST - /events)
статус необязательно , но при обновлении статуса (PATCH- /events/:id/status)
его обязательно .
@Entity("events")
export class Events {
@IsString({ groups: ["updateStatus"] })
@IsNotEmpty({ groups: ["updateStatus"] })
@IsOptional({ groups: ["createOne"] })
@IsEnum(EventStatus, { groups: ["updateStatus"] })
@Column({
type: "enum",
enum: EventStatus,
default: EventStatus.OPEN
})
status: EventStatus;
// ...other properties also.
}
Когда я сделал обновить запрос на статус, я предоставляю @Body
с 'status'
в качестве параметра и ValidationPipe в качестве опции канала.
@Patch('/:id/status')
async updateStatus(
@Body(
'status',
new ValidationPipe({
groups: ['updateStatus'],
}),
)
status: EventStatus
) {
// Business logic.
}
Но с этим кодом, он не проверяет поле статуса в соответствии с упомянутой группой. Кто-нибудь знает, что я не так делаю. Любая помощь будет принята с благодарностью.