From 005240b8b291ffe69075c0e4aae13434fa3955ee Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Wed, 26 May 2021 19:47:13 -0500 Subject: [PATCH] carrito get listos --- server/controller/Carrito/carrito.js | 22 +++++++++++ server/controller/Carrito/carritos.js | 20 ++++++++++ server/controller/Carrito/equiposCarrito.js | 16 ++++---- server/controller/Carrito/update.js | 19 ++++++++-- server/controller/Operador/update.js | 2 +- server/routes/Carrito.js | 42 ++++++++++++++++----- 6 files changed, 98 insertions(+), 23 deletions(-) create mode 100644 server/controller/Carrito/carrito.js create mode 100644 server/controller/Carrito/carritos.js diff --git a/server/controller/Carrito/carrito.js b/server/controller/Carrito/carrito.js new file mode 100644 index 0000000..6af22aa --- /dev/null +++ b/server/controller/Carrito/carrito.js @@ -0,0 +1,22 @@ +const { validarId } = require('../../helper/validar'); +const dbPath = '../../db/tablas'; +const Carrito = require(`${dbPath}/Carrito`); +const TipoCarrito = require(`${dbPath}/TipoCarrito`); +const Modulo = require(`${dbPath}/Modulo`); + +const equiposCarrito = async (body) => { + const idCarrito = validarId(body.idCarrito); + + return Carrito.findOne({ + where: { idCarrito }, + include: [{ model: TipoCarrito }, { model: Modulo }], + }).then((res) => { + if (!res) throw new Error('No existe este carrito.'); + delete res.dataValues.idTipoCarrito; + delete res.dataValues.idModulo; + + return res; + }); +}; + +module.exports = equiposCarrito; diff --git a/server/controller/Carrito/carritos.js b/server/controller/Carrito/carritos.js new file mode 100644 index 0000000..09ce3e8 --- /dev/null +++ b/server/controller/Carrito/carritos.js @@ -0,0 +1,20 @@ +const { validarId } = require('../../helper/validar'); +const dbPath = '../../db/tablas'; +const Carrito = require(`${dbPath}/Carrito`); +const TipoCarrito = require(`${dbPath}/TipoCarrito`); +const Modulo = require(`${dbPath}/Modulo`); + +const carritos = async () => { + return Carrito.findAll({ + include: [{ model: TipoCarrito }, { model: Modulo }], + }).then((res) => { + for (let i = 0; i < res.length; i++) { + delete res[i].dataValues.idTipoCarrito; + delete res[i].dataValues.idModulo; + } + + return res; + }); +}; + +module.exports = carritos; diff --git a/server/controller/Carrito/equiposCarrito.js b/server/controller/Carrito/equiposCarrito.js index 6d2ee2a..43397e4 100644 --- a/server/controller/Carrito/equiposCarrito.js +++ b/server/controller/Carrito/equiposCarrito.js @@ -1,4 +1,4 @@ -const validar = require('../../helper/validar'); +const { validarId } = require('../../helper/validar'); const dbPath = '../../db/tablas'; const Carrito = require(`${dbPath}/Carrito`); const Equipo = require(`${dbPath}/Equipo`); @@ -6,23 +6,23 @@ const Programa = require(`${dbPath}/Programa`); const Status = require(`${dbPath}/Status`); const equiposCarrito = async (body) => { - const idCarrito = validar.validarId(body.idCarrito); + const idCarrito = validarId(body.idCarrito); return Carrito.findOne({ where: { idCarrito } }) .then((res) => { if (!res) throw new Error('No existe este carrito.'); - return Equipo.findAndCountAll({ + return Equipo.findAll({ where: { idCarrito }, include: [{ model: Status }, { model: Programa }], }); }) .then((res) => { - for (let i = 0; i < res.rows.length; i++) { - delete res.rows[i].dataValues.idCarrito; - delete res.rows[i].dataValues.idStatus; - delete res.rows[i].dataValues.idPrograma; + for (let i = 0; i < res.length; i++) { + delete res[i].dataValues.idCarrito; + delete res[i].dataValues.idStatus; + delete res[i].dataValues.idPrograma; } - return { count: res.count, equiposCarrito: res.rows }; + return res; }); }; diff --git a/server/controller/Carrito/update.js b/server/controller/Carrito/update.js index 8e12469..f3383e3 100644 --- a/server/controller/Carrito/update.js +++ b/server/controller/Carrito/update.js @@ -1,9 +1,20 @@ -const validar = require('../../helper/validar'); +const { validarId } = require('../../helper/validar'); const dbPath = '../../db/tablas'; const Carrito = require(`${dbPath}/Carrito`); -const Modulo = require(`${dbPath}/Modulo`); -const TipoCarrito = require(`${dbPath}/TipoCarrito`); -const update = async (body) => {}; +const update = async (body) => { + const idCarrito = validarId(body.idCarrito); + let update = {}; + + if (body.activo === 'desactivar') update.activo = false; + else if (body.activo === 'activar') update.activo = true; + else throw new Error('No se envio nada para actualizar.'); + return Carrito.findOne({ where: { idCarrito } }) + .then((res) => { + if (!res) throw new Error('No existe este carrito.'); + return Carrito.update(update, { where: { idCarrito } }); + }) + .then((res) => ({ message: 'Se actualizó correctamente el carrito.' })); +}; module.exports = update; diff --git a/server/controller/Operador/update.js b/server/controller/Operador/update.js index 1464f74..e51bfd6 100644 --- a/server/controller/Operador/update.js +++ b/server/controller/Operador/update.js @@ -7,7 +7,7 @@ const update = async (body) => { let update = {}; if (body.activo === 'desactivar') update.activo = false; - if (body.activo === 'activar') update.activo = true; + else if (body.activo === 'activar') update.activo = true; if (body.password) update.password = validar.validarAlfanumerico( body.password, diff --git a/server/routes/Carrito.js b/server/routes/Carrito.js index ae32523..5b61d0a 100644 --- a/server/routes/Carrito.js +++ b/server/routes/Carrito.js @@ -3,21 +3,43 @@ const app = express(); const { verificaToken } = require('../middleware/autentificacion'); const route = '/carrito'; const controllerPath = '../controller/Carrito'; +const carrito = require(`${controllerPath}/carrito`); +const carritos = require(`${controllerPath}/carritos`); const equiposCarrito = require(`${controllerPath}/equiposCarrito`); -// const update = require(`${controllerPath}/update`); +const update = require(`${controllerPath}/update`); // PUT -// app.put(`${route}/update`, (req, res) => { -// return update(req.body) -// .then((data) => { -// res.status(200).json(data); -// }) -// .catch((err) => { -// res.status(400).json({ message: err.message }); -// }); -// }); +app.put(`${route}/update`, (req, res) => { + return update(req.body) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); //GET +app.get(`${route}/`, (req, res) => { + return carrito(req.query) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); + +app.get(`${route}/carritos`, (req, res) => { + return carritos(req.query) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); + app.get(`${route}/equipos_carrito`, (req, res) => { return equiposCarrito(req.query) .then((data) => {