IB-AR-Neural-Style-Transfers / artficial.api / controllers / userController.js
userController.js
Raw
const User = require("../models/user");
const jwt = require("jsonwebtoken");

const createToken = (_id) => {
  return jwt.sign({ _id }, process.env.SECRET, { expiresIn: "1d" });
};

//login
const loginUser = async (req, res) => {
  const { email, password } = req.body;

  try {
    const user = await User.login(email, password);

    // create a token
    const token = createToken(user._id);
    const name = user.userName;
    res.status(200).json({ email, token, name });
  } catch (error) {
    res.status(400).json({ error: error.message });
  }
};

//signup
const signupUser = async (req, res) => {
  const { email, password, userName, phoneNumber, gender, avatarImgURL } =
    req.body;

  try {
    const user = await User.signup(
      email,
      password,
      userName,
      phoneNumber,
      gender,
      avatarImgURL
    );

    // create a token
    const token = createToken(user._id);
    const name = user.userName;
    res.status(200).json({ email, token, name });
  } catch (error) {
    res.status(400).json({ error: error.message });
  }
};
//get all users
const getAllUsers = async (req, res) => {
  const users = await User.find({}).sort({ createdAt: -1 });
  res.status(200).json(users);
};
module.exports = { loginUser, signupUser, getAllUsers };