userCtrl.js
Wed Nov 03 2021 13:18:52 GMT+0000 (Coordinated Universal Time)
Saved by @devdave
// [=>] IMPORT SECT. // - // User model const { User } = require("../config/database"); const bcrypt = require("bcrypt"); const jwt = require("jsonwebtoken"); // dotEnv variables const dotEnv = require("dotenv").config({ path: "./config/.env" }); // [=>] DISPLAY [ALL] Users // - exports.findAll = async function (req, res, next) { try { console.log("=> findAll function"); const users = await User.findAll(); res.status(200).json(users); } catch (error) { res.status(500).json({ message: error.message }); } }; // [=>] DISPLAY [ONE] User // - exports.findOne = async function (req, res, next) { try { console.log("=> findOne function"); let id = req.params.id; const user = await User.findByPk(id); res.status(200).json(user); } catch (error) { res.status(500).json({ message: error.message }); } }; // [=>] SIGNUP SECT. // - exports.signup = async function (req, res, next) { console.log("=> Signup function"); let blankProfilePicture = "https://www.handiclubnimois.fr/wp-content/uploads/2020/10/blank-profile-picture-973460_1280.png"; try { const hash = await bcrypt.hash(req.body.password, 10); const user = await User.create({ username: req.body.username, email: req.body.email, password: hash, picture: blankProfilePicture, bio: "", }); res.status(201).json(user); } catch (error) { res.status(500).json({ message: error.message }); } }; // [=>] LOGIN SECT. // - exports.login = async function (req, res, next) { console.log("=> login Function"); let email = req.body.email; // maxAgeToken in seconds const maxAgeToken = 1 * 24 * 60 * 60; try { const user = await User.findOne({ where: { email: email } }); if (user == null) { return res.status(401).json({ message: "User introuvable !" }); } const valid = await bcrypt.compare(req.body.password, user.password); if (!valid) { return res.status(401).json({ message: "Password incorrect !" }); } let token = await jwt.sign({ userId: user.id }, process.env.SECRET_TOKEN, { expiresIn: maxAgeToken, }); const userId = user.id; const username = user.username; const admin = user.isAdmin; res.status(200).json({ token, userId, username, admin }); } catch (error) { res.status(500).json({ message: error.message }); } }; exports.logout = (req, res, next) => { console.log("=> logout Function"); // res.clearCookie("token"); res.end(); }; // [=>] UPDATE PROFILE SECT. // - exports.updateOne = async function (req, res, next) { console.log("=> UPDATE PROFILE Function"); try { const user = await User.findByPk(req.params.id); user.username = req.body.username; user.email = req.body.email; user.picture = req.body.picture; user.bio = req.body.bio; await user.save(); res.status(200).json(user); } catch (error) { res.status(500).json({ message: error.message }); } }; // [=>] DELETE SECT. // - exports.deleteOne = async function (req, res, next) { console.log("=> DELETE PROFILE Function"); try { const user = await User.findByPk(req.params.id); user.destroy(); res.status(200).end(); } catch (error) { res.status(500).json({ message: error.message }); } };
Comments