sannimichaelse/Parcel-Delivery

View on GitHub
server/middlewares/UserMiddleware.js

Summary

Maintainability
A
0 mins
Test Coverage
/* eslint-disable no-useless-escape */
import Joi from 'joi';
import { signupSchema, loginSchema, } from '../utilities/userValidator';
/**
 *
 * @exports
 * @class UserMiddleware
 */
class UserMiddleware {
  /**
   * UserMiddleware
   * @staticmethod
   * @param  {object} req - Request object
   * @param {object} res - Response object
   * @param {function} next - middleware next (for error handling)
   * @return {json} res.json
   */
  static validateSignup(req, res, next) {
    if (Object.keys(req.body).length === 0) {
      return res.status(400).json({
        status: 400,
        message: 'Please fill all fields',
      });
    }
    Joi.validate(req.body, signupSchema)
      .then(() => next())
      .catch(err => res.status(400).json({
        status: 400,
        message: err.details[0].message.replace(/[\"]/gi, ''),
      }));
  }
  /**
   * UserMiddleware
   * @staticmethod
   * @param  {object} req - Request object
   * @param {object} res - Response object
   * @param {function} next - middleware next (for error handling)
   * @return {json} res.json
   */
  static validateLogin(req, res, next) {
    if (Object.keys(req.body).length === 0) {
      return res.status(400).json({
        status: 400,
        message: 'Please fill all fields',
      });
    }
    Joi.validate(req.body, loginSchema)
      .then(() => next())
      .catch(err => res.status(400).json({
        status: 400,
        message: err.details[0].message.replace(/[\"]/gi, ''),
      }));
  }
  /**
   * UserMiddleware
   * @staticmethod
   * @param  {object} req - Request object
   * @param {object} res - Response object
   * @param {function} next - middleware next (for error handling)
   * @return {json} res.json
   */
  static validateParams(req, res, next) {
    const { id } = req.params;
    if (!Number(id)) {
      return res.status(400).json({
        status: 400,
        message: 'Invalid ,Please enter valid integer',
      });
    }
    next();
  }
}

export default UserMiddleware;