/products/delete/:id
🔐 Requiere autenticación JWT.
DELETE /api/products/delete/:id
id
numérico. Primero obtiene la URL de su imagen (si existe), la elimina de Cloudinary y luego elimina el producto de la base de datos. Si ocurre un error al eliminar la imagen, se informa pero la eliminación del producto sigue su curso.verificarAutenticacion
Authorization: Bearer <token>
verificarAutenticacion
deleteProductValidator
validateRequest
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
id | number | ✅ | ID numérico del producto a eliminar |
{
"status": "success",
"code": "PRODUCT_DELETED",
"msg": "Producto eliminado correctamente.",
"info": {
"imageAction": "Eliminada",
"imageStatus": "Imagen asociada eliminada de Cloudinary."
}
}
{
"status": "warning",
"code": "PRODUCT_DELETED_WITH_IMAGE_ERROR",
"msg": "Producto eliminado de la base de datos, pero ocurrió un error al eliminar la imagen asociada de Cloudinary.",
"info": {
"imageAction": "Error al eliminar",
"imageStatus": "Cloudinary: Signature error."
}
}
{
"status": "error",
"code": "VALIDATION_ERROR",
"msg": "El parámetro 'id' es obligatorio.",
"errors": [
{
"field": "id",
"msg": "El id debe ser un número válido."
}
]
}
{
"status": "error",
"code": "AUTH_ERROR",
"msg": "Acceso no autorizado. Se requiere token válido."
}
{
"status": "error",
"code": "NOT_FOUND",
"msg": "Producto con ID 101 no encontrado."
}
{
"status": "error",
"code": "SERVER_ERROR",
"msg": "Ha ocurrido un error inesperado al eliminar el producto. Intente de nuevo más tarde.",
"info": {
"detail": "Fallo al conectar con Cloudinary.",
"imageAction": "Intentando eliminar"
}
}
curl --location --request DELETE 'https://back-prima-s-a.onrender.com/api/products/delete/44444' \
--header 'User-Agent: insomnia/11.0.0' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NjI0ZjkwNzY2OWM5MDZjYTM0YThkZSIsInJvbCI6ImFkbWluIiwiaWF0IjoxNzQyOTMxNzg3LCJleHAiOjE3NDI5NjA1ODd9.nwBdY2DmiTAjEYfxGukAQHJkbrsLHqMosjmOSgzfbR4'
{"message":"Producto eliminado correctamente"}