const express = require("express") const router = express.Router() const { requireAuth } = require("./../../middleware/authmiddleware") const User = require("./../../model/user.js") const bodyParser = require("body-parser") const bcrypt = require("bcrypt") router.use(bodyParser.json()) router.post("/", requireAuth, async (req, res) => { const { oldpassword, newpassword } = req.body if (!oldpassword || typeof oldpassword !== "string") { return res.json({ status: "error", error: "Old password needs to be sent and it needs to be a string", }) } if (!newpassword || typeof newpassword !== "string") { return res.json({ status: "error", error: "New password needs to be sent and it needs to be a string", }) } if (newpassword.length < 4) { return res.json({ status: "error", error: "Password needs to be at least 5 characters", }) } if (await bcrypt.compare(oldpassword, req.userdocument.password)) { // password matches const newhashedpassword = await bcrypt.hash(newpassword, 10) try { req.userdocument.password = newhashedpassword req.userdocument.markModified("password") await req.userdocument.save() } catch {} return res.json({ status: "success", message: "Changed Password!" }) } res.json({ status: "error", error: "Invalid old password" }) }) module.exports = router