Sindbad~EG File Manager

Current Path : /home/infinitibizsol/.trash/controllers.3/
Upload File :
Current File : /home/infinitibizsol/.trash/controllers.3/authController.js

const brcrypt = require("bcrypt");
const db = require("../models");
const jwt = require("jsonwebtoken");
const loginController = async (req, res) => {
  try {
    const { email, password } = req.body;
    let [result] = await db.tblUser.findAll({
      where: {
        email: email,
      },
    });
    // return res.json({ data: result });
    if (!result) {
      return res
        .status(404)
        .json({ status: 404, message: "Invalid Credentials." });
    }

    const isMatched = await brcrypt.compare(password, result.password);
    if (!isMatched) {
      return res
        .status(403)
        .json({ status: 403, message: "Invalid Credentials." });
    }

    let token = await jwt.sign(
      { email: result.email, auctioneerId: result.auctioneer_id },
      process.env.JWT_KEY
    );
    return res.json({
      status: 200,
      message: "Success",
      data: [{ token, ...result.dataValues }],
    });
  } catch (error) {
    return res.status(500).json({
      status: 500,
      message: "Internal Server Error",
      error: error.message,
    });
  }
};
const signupController = async (req, res) => {
  try {
    const { email, password } = req.body;
    const salt = await brcrypt.genSalt(10);
    const hashedPassword = await brcrypt.hash(password, salt);
    req.body.password = hashedPassword;
    let result;
    result = await db.tblUser.findAll({ where: { email: email } });

    if (result.length > 0) {
      return res.status(402).json({
        status: 402,
        message: "Email already existed please choose another account",
      });
    }
    result = await db.tblUser.create(req.body);

    let token = await jwt.sign(
      { email: result.email, userId: result.user_id },
      process.env.JWT_KEY
    );
    return res.json({
      status: 200,
      message: "Success",
      data: [{ token, ...result.dataValues }],
    });
  } catch (error) {
    return res.status(500).json({
      status: 500,
      message: "Internal Server Error",
      error: error.message,
    });
  }
};

const updateUserPassword = async (req, res) => {
  try {
    let { userId, newPassword } = req.body;

    if (newPassword) {
      const salt = await brcrypt.genSalt(10);
      const encrypPassword = await brcrypt.hash(newPassword, salt);
      req.body.password = encrypPassword;
      let result = await db.tblUser.update(req.body, {
        where: { user_id: userId },
      });
      return res.status(200).json({ status: 200, message: "Success" });
    } else {
      return res.json({ status: 400, message: "newpassword undefined" });
    }
  } catch (error) {
    return res.status(500).json({
      status: 500,
      message: "Internal Server Error",
      error: error.message,
    });
  }
};
module.exports = { loginController, signupController, updateUserPassword };

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