如何在graphql中将装饰器添加到args参数
Posted
技术标签:
【中文标题】如何在graphql中将装饰器添加到args参数【英文标题】:How to add decorator to args param in graphql 【发布时间】:2021-12-24 19:44:45 【问题描述】:无法将装饰器 @IsUUID()
从 class-validator
添加到我的参数 productI
,我不想使用额外的 dto。如何解决?
@UseGuards(new AuthGuard(['user', 'admin']))
@Mutation(() => ProductEntity)
async updateProduct(
@User() user,
@Args('productId', )
//@IsUUID() Unable to resolve signature of parameter decorator when called as an expression.
productId: string,
@Args('inputs', )
inputs: UpdateProductInputDto,
): Promise<ProductEntity>
return this.productService.updateProduct(user.id, productId, inputs);
【问题讨论】:
【参考方案1】:没有办法解决它。如果您想使用 @IsUUID()
和 ValidationPipe
,您必须使用类 DTO。如果你只是想验证UUID
,你可以使用ParseUUIDPipe
。 @Args('productId', , new ParseUUIDPipe( version: 4 ))
【讨论】:
以上是关于如何在graphql中将装饰器添加到args参数的主要内容,如果未能解决你的问题,请参考以下文章
使用自定义类型的 TypeGraphql 字段和 Arg 装饰器