Eivydas Vickus
Eivydas Vickus

Reputation: 189

Nest.js unique dto validator

Maybe someone know how to make custom unique validator with class-validator in nest.js.I found few articles in internet, but however those implementations was not reusable. I wanna my unique validator reuse in every dto for example: users, products.

Upvotes: 0

Views: 4165

Answers (2)

Iurii_Pastushenko
Iurii_Pastushenko

Reputation: 1

Youba! There is an error in your module if we use camelCase:

@Validate(IsUnique, [{ table: 'customers', column: 'carName' }])

As example,

query: "select carName from customers where  carName like 'Scoda1'",
parameters: undefined,
driverError: error: column "carname" does not exist

Upvotes: 0

Ayoub Touba
Ayoub Touba

Reputation: 3007

You can use this small lib to reach your goal or get inspired by it's code dbvalidator,

to use it, you only need to, install it npm install @youba/nestjs-dbvalidator

2/ register it :

 @Module({
  imports: [DbValidatorsModule.register({
    type: 'mysql',
    host:  "localhost",
    port: 3306,
    username:"root",
    password:"password",
    database:"demo"})],
  providers: [StreetService],
  controllers: [StreetController],
})
export class StreetModule {
  constructor() {}
}

3/ use it in DTO :

@IsNotEmpty()
@Validate(IsUnique, 
[ { table: "company", column: "name" }] )
 name: string;

ps:I'm the author in case you need any explanation

Upvotes: 1

Related Questions