Home > Software engineering >  How to add decorator to args param in graphql
How to add decorator to args param in graphql

Time:11-13

can't add decorator @IsUUID() from class-validator to my param productI, I don't want use additional dto. How to fix it?

@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);
}

CodePudding user response:

There's no way around it. If you want to use @IsUUID() and the ValidationPipe, you have to use a class DTO. If you're just looking to validate the UUID though, you could use the ParseUUIDPipe. @Args('productId', {}, new ParseUUIDPipe({ version: 4 }))

  • Related