manejo de usuarios

This commit is contained in:
2022-04-19 20:43:49 -05:00
parent a55f45cafd
commit 153f2da1f7
21 changed files with 922 additions and 56 deletions

View File

@@ -3,13 +3,28 @@ const router = express.Router();
const jwt = require("jsonwebtoken");
const bcrypt = require("bcrypt");
const User = require("../models/user");
//import User from "../models/user.js";
const {loadImage,deleteImageCloud,scaleImage} = require("../utils/cloudinary");
const { checkAuth } = require("../middlewares/authentication");
const {uploadFile} = require('../utils/uploadfiles')
const fs = require("fs-extra");
//AUTH
router.get("/users", checkAuth, async (req, res) => {
var Users;
Users = await User.find({});
return res.send({
status: "ok",
data: Users,
});
});
if (process.env.REGISTER == "true") {
router.post("/register", async (req, res) => {
const { name, email, password } = req.body;
router.post("/register", uploadFile,async (req, res) => {
const { name, email, password } = JSON.parse(req.body.user);
const passEncrypted = bcrypt.hashSync(password, 10);
const newUser = new User({
@@ -20,6 +35,7 @@ if (process.env.REGISTER == "true") {
const emailUser = await User.findOne({ email: email });
if (emailUser) {
deleteImage(req)
return res
.status(500)
.json({ status: "fail", error: "email already exists" });
@@ -27,6 +43,17 @@ if (process.env.REGISTER == "true") {
try {
newUser.password = await newUser.encryptPassword(password);
if (req.files.File) {
console.log(req.files.File.tempFilePath);
const result = await loadImage(req.files.File.tempFilePath);
newUser.image = {
public_id: result.public_id,
secure_url: result.secure_url,
};
deleteImage(req)
}
await newUser.save();
res.json({
@@ -34,23 +61,22 @@ if (process.env.REGISTER == "true") {
msg: "Usuario creado",
});
} catch (error) {
deleteImage(req)
return res
.status(500)
.json({ status: "fail", error: `internal error:${error}` });
}
});
}
else{
} else {
router.post("/register", (req, res) => {
deleteImage(req)
return res
.status(500)
.json({ status: "faill", error: `No tiene permitido crear usuarios nuevos` });
})
.status(500)
.json({
status: "faill",
error: `No tiene permitido crear usuarios nuevos`,
});
});
}
router.post("/login", async (req, res) => {
@@ -85,6 +111,27 @@ router.post("/login", async (req, res) => {
res.json(toSend);
});
router.delete("/user", checkAuth, async (req, res) => {
try {
const id = req.query.id;
const userDelete = await User.findOne({ _id: id })
const resultado = await User.deleteOne({ _id: id });
if(userDelete.image.public_id)
await deleteImageCloud(userDelete.image.public_id).catch(console.error("No existe imagen para borrar"));
return res.json({ status: "ok", data: resultado });
} catch (error) {
console.error(error);
return res.status(500).json({ status: "fail", error: error });
}
});
//CRUD USER
const deleteImage = async (req)=>{
if (req.files.File) {
await fs.unlink(req.files.File.tempFilePath);
}
}
module.exports = router;