Sindbad~EG File Manager

Current Path : /home/infinitibizsol/.trash/controllers.11/
Upload File :
Current File : /home/infinitibizsol/.trash/controllers.11/errorHandler.js

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;
var _apiError = _interopRequireDefault(require("../utils/apiError"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
var setCastError = function setCastError(err) {
  return new _apiError["default"]("".concat(err.message), 404);
};
var setDuplicateNameError = function setDuplicateNameError(err) {
  if (err.keyPattern.email === 1) err.keyValue.name = "Email";
  var msg = err.keyValue.name === "Email" ? "Already user has the same: / ".concat(err.keyValue.name, " /") : "Already user has the same name: / ".concat(err.keyValue.name, " /");
  return new _apiError["default"](msg, 404);
};
var setValidatorError = function setValidatorError(err) {
  var msgs = Object.values(err.errors).map(function (el) {
    return el.message;
  }).join(",");
  return new _apiError["default"]("/ ".concat(msgs, " /"), 404);
};
var setJwtError = function setJwtError(err) {
  new _apiError["default"]("".concat(err.message), 402);
};
var unAuthorizedErrorHandler = function unAuthorizedErrorHandler(err) {
  return new _apiError["default"]("".concat(err.inner.message), 402);
};
var productionError = function productionError(err, req, res) {
  var error = err;
  if (err.name === "UnauthorizedError") error = unAuthorizedErrorHandler(error);
  if (err.name === "MongoNetworkError") error.message = "Mongo Not working";
  if (err.name === "CastError") error = setCastError(error);
  if (err.code === 11000) error = setDuplicateNameError(error);
  if (err._message === "Tour validation failed") error = setValidatorError(error);
  if (err._message === "users validation failed") error = setValidatorError(error);
  if (err.name === "JsonWebTokenError") error = setJwtError(error);
  if (err.name === "TokenExpiredError") error = setJwtError(error);
  return res.status(err.statusCode).json({
    name: error.name,
    message: error.message,
    statusCode: error.statusCode,
    isOperational: error.isOperational
  });
};
var developmentError = function developmentError(err, req, res) {
  res.status(err.statusCode).json({
    name: err.name,
    message: err.message,
    status: err.status,
    statusCode: err.statusCode,
    isOperational: err.isOperational,
    stack: err.stack
  });
};
var globalErrorHandler = function globalErrorHandler(err, req, res, next) {
  err.statusCode = err.statusCode || 500;
  err.status = err.status || "error";
  if (process.env.NODE_ENV === "development") {
    developmentError(err, req, res);
  } else if (process.env.NODE_ENV === "production") {
    productionError(err, req, res);
  }
  next();
};
var _default = exports["default"] = globalErrorHandler;

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists