-
-
Save parzibyte/fad81d4ffd76db2983e1d165aac6bb54 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const express = require('express'); | |
const router = express.Router(); | |
const productosModel = require("../models/productos"); | |
router.get('/', function (req, res, next) { | |
productosModel | |
.obtener() | |
.then(productos => { | |
console.log(productos); | |
res.render("productos/ver", { | |
productos: productos, | |
}); | |
}) | |
.catch(err => { | |
console.log(err); | |
return res.status(500).send("Error obteniendo productos"); | |
}); | |
}); | |
router.get('/agregar', function (req, res, next) { | |
res.render("productos/agregar"); | |
}); | |
router.post('/insertar', function (req, res, next) { | |
// Obtener el nombre y precio. Es lo mismo que | |
// const nombre = req.body.nombre; | |
// const precio = req.body.precio; | |
const { nombre, precio } = req.body; | |
if (!nombre || !precio) { | |
return res.status(500).send("No hay nombre o precio"); | |
} | |
// Si todo va bien, seguimos | |
productosModel | |
.insertar(nombre, precio) | |
.then(idProductoInsertado => { | |
res.redirect("/productos"); | |
}) | |
.catch(err => { | |
return res.status(500).send("Error insertando producto"); | |
}); | |
}); | |
router.get('/eliminar/:id', function (req, res, next) { | |
productosModel | |
.eliminar(req.params.id) | |
.then(() => { | |
res.redirect("/productos"); | |
}) | |
.catch(err => { | |
return res.status(500).send("Error eliminando"); | |
}); | |
}); | |
router.get('/editar/:id', function (req, res, next) { | |
productosModel | |
.obtenerPorId(req.params.id) | |
.then(producto => { | |
if (producto) { | |
res.render("productos/editar", { | |
producto: producto, | |
}); | |
} else { | |
return res.status(500).send("No existe producto con ese id"); | |
} | |
}) | |
.catch(err => { | |
return res.status(500).send("Error obteniendo producto"); | |
}); | |
}); | |
router.post('/actualizar/', function (req, res, next) { | |
// Obtener el nombre y precio. Es lo mismo que | |
// const nombre = req.body.nombre; | |
// const precio = req.body.precio; | |
const { id, nombre, precio } = req.body; | |
if (!nombre || !precio || !id) { | |
return res.status(500).send("No hay suficientes datos"); | |
} | |
// Si todo va bien, seguimos | |
productosModel | |
.actualizar(id, nombre, precio) | |
.then(() => { | |
res.redirect("/productos"); | |
}) | |
.catch(err => { | |
return res.status(500).send("Error actualizando producto"); | |
}); | |
}); | |
module.exports = router; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment