“validator kelas ekspres” Kode Jawaban

validator kelas ekspres

// using like this 
// this.router.post('/register', [validator(DTORegister)], this.registerUsersController)

import { validate, ValidationError } from 'class-validator'
import { StatusCodes as status } from 'http-status-codes'
import { Request, Response, NextFunction } from 'express'
import { OutgoingMessage } from 'http'

import { apiResponse } from '@helpers/helper.apiResponse'

export function validator(DataTransferObject: any) {
  return async function (req: Request, res: Response, next: NextFunction): Promise<OutgoingMessage> {
    const errors: ValidationError[] = await validate(Object.assign(new DataTransferObject(), req.body))
    const errorMessage = errors.map((val: ValidationError) => {
      return apiResponse(400, Object.values(val.constraints)[0])
    })

    if (errorMessage.length) {
      return res.status(status.BAD_REQUEST).json(errorMessage)
    }
    next()
  }
}
Restu Wahyu Saputra

validator kelas ekspres

import { validate, ValidationError } from 'class-validator'
import { ClassConstructor, plainToClass } from 'class-transformer'
import { StatusCodes as status } from 'http-status-codes'
import { Request, Response, NextFunction } from 'express'
import { OutgoingMessage } from 'http'

import { apiResponse } from '@helpers/helper.apiResponse'

export function validator(MetaType: ClassConstructor<any>) {
  return async function (req: Request, res: Response, next: NextFunction): Promise<OutgoingMessage> {
    let property: Record<string, any> = {}
    Object.assign(property, req.body, req.params, req.query)

    const object: Record<string, any> = plainToClass(MetaType, property)
    const errorsResponse: ValidationError[] = await validate(object)

    const errorMessage = errorsResponse.map((val: ValidationError) => apiResponse(400, Object.values(val.constraints)[0]))
    if (errorMessage.length) {
      return res.status(status.BAD_REQUEST).json({ errors: errorMessage })
    }
    next()
  }
}
Restu Wahyu Saputra

validator kelas ekspres

// using like this 
// this.router.post('/register', [validator([DTORegister])], this.registerUsersController)

export function validator(DataTransferObject: any) {
  return async function (req: Request, res: Response, next: NextFunction): Promise<OutgoingMessage> {
    let errors: any = []

    DataTransferObject.forEach(async (DTO: any) => {
      const property: Record<string, any> = {}
      Object.assign(property, req.body, req.params, req.query)
      const errorsResponse: ValidationError[] = await validate(Object.assign(new DTO(), property))
      errors.push(errorsResponse)
    })

    const errorMessage = errors.map((val: ValidationError) => apiResponse(400, Object.values(val.constraints)[0]))
    if (errorMessage.length) {
      return res.status(status.BAD_REQUEST).json(errorMessage)
    }
    next()
  }
}
Restu Wahyu Saputra

Jawaban yang mirip dengan “validator kelas ekspres”

Pertanyaan yang mirip dengan “validator kelas ekspres”

Lebih banyak jawaban terkait untuk “validator kelas ekspres” di TypeScript

Jelajahi jawaban kode populer menurut bahasa

Jelajahi bahasa kode lainnya