80 lines
1.9 KiB
JavaScript
80 lines
1.9 KiB
JavaScript
const { getUserByID, updateProfile } = require("../functions/user");
|
|
|
|
const express = require("express");
|
|
const router = express.Router();
|
|
|
|
//api/v0/user/me
|
|
//getbyid
|
|
router.get("/me", async function (req, res, next) {
|
|
try {
|
|
let user = await getUserByID(req.user); //req.user assigned in middleware!
|
|
//console.log(user);
|
|
res.json({
|
|
user: user,
|
|
});
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
});
|
|
|
|
//logout
|
|
router.delete("/logout", async function (req, res, next) {
|
|
try {
|
|
/*
|
|
let authToken = req.header('auth-token');
|
|
let userDel = await deleteUserToken(authToken);
|
|
if (!userDel) {
|
|
let error = new Error("User not found");
|
|
error.status = 400;
|
|
return next(error);
|
|
}
|
|
*/
|
|
//destroy method call on seq object
|
|
req.token.destroy();
|
|
// DO NOT CALL THIS!!! IT WILL DESTROY USERMODEL SEQ OBJ
|
|
//req.user.destroy();
|
|
res.json({
|
|
message: "User logged out successfully",
|
|
});
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
});
|
|
|
|
//update
|
|
router.put("/update", async function (req, res, next) {
|
|
try {
|
|
if (!req.body.password) {
|
|
let updateRes = await updateProfile(req.user, req.body);
|
|
if (!updateRes) return next(error);
|
|
console.log(updateRes);
|
|
res.json({
|
|
message: "User updated successfully",
|
|
});
|
|
} else {
|
|
let updateRes = await updateProfile(req.user, req.body);
|
|
if (!updateRes) return next(error);
|
|
res.json({
|
|
message: "User updated successfully",
|
|
});
|
|
}
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
});
|
|
|
|
//delete
|
|
router.delete("/delete", async function (req, res, next) {
|
|
//https://stackoverflow.com/questions/23128816/sequelize-js-ondelete-cascade-is-not-deleting-records-sequelize
|
|
//destroy method call on seq object
|
|
req.token.destroy({
|
|
onDelete: "cascade",
|
|
});
|
|
req.user.destroy();
|
|
res.json({
|
|
message: "User deleted successfully",
|
|
});
|
|
});
|
|
|
|
module.exports = router;
|