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



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

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"
}
} 

我将创建组织和用户。在这种情况下,希望验证器也能处理组织。这里我需要organisationId或organisation。如何做到这一点?是否有办法确保只有一个可用?

谢谢你提供的信息。

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

export class User {
@IsString()
public name: string;
@IsNumber()
@ValidateIf(o => !o.organisation)
public organisationId: number;
@ValidateIf(o => !o.organisationId)
public organisation: Organisation;
}

最新更新