Class 嵌套对象或对象 ID 的验证器

Class validator for nested object or object ID

我想创建一个传递了 organizationId 的用户,如果组织不可用,我也希望传递组织对象。

export class User {
  @IsString()
  public name: string;

  @IsNumber()
  public organisationId: number;
}

export class Organisation {
  @IsString()
  public name: string;
}

基本上,如果请求是

{
  name: "user name",
  organisationId: 1
}

我将创建用户,因为组织(ID 为 1)已经存在。 对于请求

{
  name: "user name",
  organisation: {
    name: "org name"
  }
} 

我将创建组织和用户。在这种情况下,也希望验证者在组织上工作。在这里,我需要 organizationId 或 organization。如何做到这一点?有没有办法确保只有一个可用?

感谢您提供任何信息。

我能够使用 ValidateIf 装饰器并解决我的问题。谢谢

export class User {
  @IsString()
  public name: string;

  @IsNumber()
  @ValidateIf(o => !o.organisation)
  public organisationId: number;

  @ValidateIf(o => !o.organisationId)
  public organisation: Organisation;
}