Create an API via NestJS
December 5, 2019

Create an API via NestJS Part IV

Validation error for CRUD

Create validation function for the Read method

Go to quiz.servise.ts and edit the read() function such as:

quiz.servise.ts

Line by line explanation:

  1. Declaration of the read() function which takes id with string type.
  2. Writing a response from a database to the quiz constant.
  3. Checking whether the quiz constant's value is 'null'. The condition will be true if the quiz is undefined or equals to 'null'.
  4. Throwing a new exception. It will be handled by our logging interceptor from the previous part. HttpException is the function of two arguments: the first one — a message which will be shown when error threw, second — just server response code like a 404 for Not Found or 200 for OK.
  5. "Else" statement.
  6. Returning data that we received from the database.

Do the same for Update and Delete methods

quiz.servise.ts

Create a class validator

Install the necessary packages:

yarn add class-transformer class-validator

And create file

touch src/shared/validation.pipe.ts

Now just copy code from the official documentation, and write some fixes:

validation.pipe.ts
Rows 14-19 — validate did we receive an empty object.
Rows 28-31 ­— pass the errors to logging interceptor.
Rows 41-49 — aggregate all errors into one string.
Rows 50-56 — a function that checks if an object is empty.

Then we have to change our DTO file to be able to validate fields:

quiz.dto.ts

Finally, connect your Validation Pipe to the controller:

quiz.controller.ts