index.js 2.29 KB
Newer Older
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
1
const User = require("../../models/user");
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
2 3 4
const bcryptjs = require("bcryptjs");
const JWT = require("jsonwebtoken");
const config = require("../../config");
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
5
const Beautician = require("../../models/beautician")
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
6 7

exports.getUserById = async (req, res) => {
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
8
  console.log("here");
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
9
  try {
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
10
    console.log("req.param", req.param);
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
11 12 13 14 15 16 17 18 19 20 21 22 23
    const userId = req.params.id;
    const user = await User.findOne({
      where: { id: userId }
    });
    res.status(200).send(user);
  } catch (err) {
    console.log(err);
    res.sendStatus(401);
  }
};
createToken = id => {
  return JWT.sign({ id }, config.JWT_SECRET);
};
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
24 25

exports.register = async (req, res) => {
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
26 27
  try {
    const registerData = req.body;
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
28
 
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
29 30 31 32 33 34 35 36 37 38 39
    const user = await User.findOne({
      where: { email: registerData.email }
    });

    if (user) {
      return res.status(400).json({ message: "อีเมลนี้ถูกใช้งานแล้ว" });
    } else {
      const passwordHash = await bcryptjs.hash(registerData.password, 10);
      const newUser = await User.create({
        name: registerData.name,
        email: registerData.email,
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
40 41 42 43
        password: passwordHash,
        address: registerData.address,
        tel: registerData.tel,
        role: registerData.role
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
44
      });
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
45
     
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
46 47
      const token = await createToken(newUser.id);
      res.status(200).send("success");
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
48
    }
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
49 50 51 52 53
  } catch (err) {
    console.log(err);
    res.sendStatus(401);
  }
};
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
54

Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
55 56 57 58 59
exports.login = async (req, res) => {
  const loginData = req.body;
  const user = await User.findOne({
    where: { email: loginData.email }
  });
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
60 61
  if (!user) {
    return res.status(400).json({ message: "email หรือ รหัสผ่านไม่ถูกต้อง" });
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
62 63 64 65 66 67 68 69 70
  } else {
    const chkPassword = await bcryptjs.compare(
      loginData.password,
      user.dataValues.password
    );
    if (chkPassword === false) {
      return res.status(400).json({ message: "รหัสผ่านไม่ถูกต้อง" });
    }
    const token = await createToken(user.dataValues.id);
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
71
    res.status(200).send({token});
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
72 73
  }
};
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
74 75

exports.currentUser = async (req, res) => {
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
76
  const token = req.headers.token;
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
77
  const decode = await JWT.verify(token, config.JWT_SECRET);
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
78 79 80 81
  const user = await User.findOne({
    where: {
      id: decode.id
    }
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
82
  });
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
83
  res.status(200).send(user);
Piyaphorn Arphornsri's avatar
Piyaphorn Arphornsri committed
84
};