From 708aff7c6900fd1f920b17b21c3842d965cf124a Mon Sep 17 00:00:00 2001 From: RoberGF Date: Tue, 14 Jan 2025 13:21:38 +0100 Subject: [PATCH] deleting api product now use 2 validations and by user Id and product Id --- nodepop/controllers/api/apiProductController.js | 14 ++++++++++++++ nodepop/controllers/productController.js | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/nodepop/controllers/api/apiProductController.js b/nodepop/controllers/api/apiProductController.js index cc6f55f..497bbde 100644 --- a/nodepop/controllers/api/apiProductController.js +++ b/nodepop/controllers/api/apiProductController.js @@ -1,4 +1,5 @@ import Product from "../../models/Product.js" +import createError from 'http-errors' // iportamos el modelo del producto // API CRUD METHODS @@ -94,7 +95,20 @@ export async function apiProductUpdate(req, res, next) { export async function apiProductDelete(req, res, next) { try { //recogemos del los parametros de la ruta + const apiUserId = req.apiUserID const productId = req.params.productId + + const product = await Product.findOne({ _id: productId }) //validar que el producto existe + if (!product) { + console.warn(`WARNING - el usuario ${apiUserId} está intentando eliminar un producto inexistente`) + return next(createError(404)) + } + + if (product.owner.toString() !== apiUserId) { //validar que le pertenece + console.warn(`WARNING - el usuario ${apiUserId} está intentando eliminar un producto de otro usuario`) + return next(createError(401)) + } + // buscamos el product en la DB pasandole el filtro de el que vamos a borrar await Product.deleteOne({ _id: productId }) diff --git a/nodepop/controllers/productController.js b/nodepop/controllers/productController.js index e13283a..47a483f 100644 --- a/nodepop/controllers/productController.js +++ b/nodepop/controllers/productController.js @@ -52,7 +52,7 @@ export async function deleteProduct(req, res, next) { } //verificar que el owner coincide con el userId , si no lanzo un warn if (product.owner.toString() !== userId) { - console.warn(`WARNING - el usuario ${userId} está intentando eliminar un agente de otro usuario`) + console.warn(`WARNING - el usuario ${userId} está intentando eliminar un producto de otro usuario`) return next(createError(401, 'Not authorized')) }