diff --git a/helpers/fillDB.js b/helpers/fillDB.js index 27f94f8..93f9a7f 100644 --- a/helpers/fillDB.js +++ b/helpers/fillDB.js @@ -1,5 +1,4 @@ const fillActivoFijo = require('./tables/ActivoFijo'); -const fillDA = require('./tables/DescripcionAdicional'); const fillEquipo = require('./tables/Equipo'); const fillInventario = require('./tables/Inventario'); const fillMarca = require('./tables/Marca'); @@ -17,7 +16,7 @@ const colors = require('colors'); const symbols = require('log-symbols'); const progress = require('cli-progress'); -let rows = 10; +let rows = 100; let faileds = 0; let ok = 0; let censo = 0; @@ -51,7 +50,6 @@ async function fillingEquipo() { max: 5 }); - // await fillDA(); await fillInventario(noInventario, idActivoFijo) .then(() => censo++) .catch(() => { @@ -103,7 +101,7 @@ async function fillingPrinters() { pInventario.stop(); throw new Error(); }); - await fillPrinters(noInventario) + await fillPrinters(noInventario, idActivoFijo) .catch(() => { console.log(symbols.warning, 'Error creating «printers»'); barprinters.stop(); diff --git a/helpers/tables/DescripcionAdicional.js b/helpers/tables/DescripcionAdicional.js deleted file mode 100644 index bd08f9c..0000000 --- a/helpers/tables/DescripcionAdicional.js +++ /dev/null @@ -1,16 +0,0 @@ -const DescripcionAdicional = require('../../server/models/tablas/DescripcionAdicional'); - -const faker = require('faker'); -faker.locale = "es_MX"; - -async function fillDA() { - let da = faker.lorem.sentence(); - - // console.log("Descripción adicional: ", da); - - await DescripcionAdicional.create({ - descripcion: da - }); -}; - -module.exports = fillDA; \ No newline at end of file diff --git a/helpers/tables/Equipo.js b/helpers/tables/Equipo.js index cb84b6f..97c328a 100644 --- a/helpers/tables/Equipo.js +++ b/helpers/tables/Equipo.js @@ -61,9 +61,8 @@ async function fillEquipo(noInventario, idActivoFijo) { hdd, noInventario, idMarca, - idOS - // idDescripcion - // idActivoFijo + idOS, + idActivoFijo }) .catch(() => { throw new Error(); diff --git a/helpers/tables/Printers.js b/helpers/tables/Printers.js index c493b78..dc64ac8 100644 --- a/helpers/tables/Printers.js +++ b/helpers/tables/Printers.js @@ -3,7 +3,7 @@ const Printers = require('../../server/models/tablas/Printers'); const faker = require('faker'); faker.locale = "es_MX"; -async function fillPrinters(noInventario) { +async function fillPrinters(noInventario, idActivoFijo) { let noSerie = faker.vehicle.vin(); let idMarca = faker.random.number({ min: 1, @@ -13,13 +13,18 @@ async function fillPrinters(noInventario) { min: 1, max: 4 }); + let descripcion = faker.lorem.sentence(); + let modelo = faker.vehicle.model(); // console.log("Número de serie impresora: ", noSerie); await Printers.create({ noInventario, noSerie, + modelo, + descripcion, idMarca, - idTipo + idTipo, + idActivoFijo }); }; diff --git a/scratch/token b/scratch/token index cec4563..d66162e 100644 --- a/scratch/token +++ b/scratch/token @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkQWRtaW4iOjIsIm5hbWUiOiJhbGZyZWRvLmxpbWFAYWNhdGxhbi51bmFtLm14IiwidXNlck5hbWUiOiJBbGZyZWRvIExpbWEiLCJwYXNzd29yZCI6IiQyYiQxMCRrZ0VyaVE3UzBsZ2xTRjNqR1hnSER1c0huU0lsWHVPekdzckguNHVIYjc3UktjVzVNSkQuSyIsImlzQWRtaW4iOmZhbHNlLCJjcmVhdGVkQXQiOiIyMDIwLTA4LTI1VDE4OjQzOjM5LjAwMFoiLCJ1cGRhdGVkQXQiOiIyMDIwLTA4LTI1VDE4OjQzOjM5LjAwMFoifSwiaWF0IjoxNTk5NjAwNjc2LCJleHAiOjE1OTk2ODcwNzZ9.o6fZL839jIktsgd1Y8Xrd8uPMOnhjEv9783PBhl7-Bk \ No newline at end of file +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkQWRtaW4iOjIsIm5hbWUiOiJiaWxsaWUiLCJ1c2VyTmFtZSI6IkJpbGxpZSIsInBhc3N3b3JkIjoiJDJiJDEwJGhGdXF0OW82NXNHREpxNkl3OTVicU9JQmUuZjZ1Z2d0SGVWQ0ZTNFFOc1ovWUtQT0R1d1pxIiwiaXNBZG1pbiI6ZmFsc2UsImNyZWF0ZWRBdCI6IjIwMjAtMDktMTFUMjE6MjY6MzUuMDAwWiIsInVwZGF0ZWRBdCI6IjIwMjAtMDktMTFUMjE6MjY6MzUuMDAwWiJ9LCJpYXQiOjE2MDAxMjIwODMsImV4cCI6MTYwMDIwODQ4M30.XO3aUWGUxtV7R7ESEy4VNeukPEeQ1UFR9SVAp89KWWo \ No newline at end of file diff --git a/server/controller/api/computers.js b/server/controller/api/computers.js index cbbe108..3c884b3 100644 --- a/server/controller/api/computers.js +++ b/server/controller/api/computers.js @@ -1,22 +1,32 @@ -const activoFijo = require('../../models/tablas/ActivoFijo'); -const DescripcionAdicional = require('../../models/tablas/DescripcionAdicional'); -const Equipo = require('../../models/tablas/Equipo'); -const Inventario = require('../../models/tablas/Inventario'); -const Marca = require('../../models/tablas/Marca'); -const OS = require('../../models/tablas/OS'); -const Printers = require('../../models/tablas/Printers'); -const Tipo = require('../../models/tablas/Tipo'); -const Ubicacion = require('../../models/tablas/Ubicacion'); -const UResponsable = require('../../models/tablas/UResponsable'); -const Uso = require('../../models/tablas/Uso'); +const sequelize = require('../../config/sequelize.conf'); -const jwt = require('jsonwebtoken'); +const { QueryTypes } = require('sequelize'); -const computers = (req, res) => { + +const computers = async(req, res) => { // res.json({ // message: "Listo" // }); + await sequelize.query(` + SELECT I.noInventario, AF.activoFijo, E.modelo, M.marca, E.noSerie, E.procesador, E.hdd, E.memoriasz, E.memoria, E.vMemoria, E.graficos, OS.osname, UR.uResponsable, UR.nombreResponsable, Ub.ubicacion, U.uso, I.noResguardo + FROM inventario I + INNER JOIN activoFijo AF ON AF.idActivoFijo = I.idActivoFijo + INNER JOIN equipo E ON E.noInventario = I.noInventario + INNER JOIN marca M ON M.idMarca = E.idMarca + INNER JOIN OS ON OS.idOS = E.idOS + INNER JOIN uResponsable UR ON UR.idUnidadResponsable = I.idUnidadResponsable + INNER JOIN ubicacion Ub ON Ub.idUbicacion = I.idUbicacion + INNER JOIN uso U ON U.idUso = I.idUso + ORDER BY AF.activoFijo`, { type: QueryTypes.SELECT }) + .then(equipo => { + return res.json({ + equipo + }) + }) + .catch(error => res.status(500).json({ + error + })); } diff --git a/server/controller/api/printers.js b/server/controller/api/printers.js new file mode 100644 index 0000000..d632dea --- /dev/null +++ b/server/controller/api/printers.js @@ -0,0 +1,26 @@ +const sequelize = require('../../config/sequelize.conf'); + +const { QueryTypes } = require('sequelize'); + +const printers = async(req, res) => { + + await sequelize.query(` + SELECT I.noInventario, T.tipo, P.modelo, M.marca, P.noSerie, P. descripcion + FROM inventario I + INNER JOIN printers P ON P.noInventario = I.noInventario + INNER JOIN marca M ON M.idMarca = P.idMarca + INNER JOIN tipo T ON T.idTipo = P.idTipo + ORDER BY T.tipo + `, { type: QueryTypes.SELECT }) + .then(printers => { + return res.json({ + printers + }); + }) + .catch(error => res.status(500).json({ + error + })); + +} + +module.exports = printers; \ No newline at end of file diff --git a/server/controller/login/post.js b/server/controller/login/post.js index b15178b..7ce24ec 100644 --- a/server/controller/login/post.js +++ b/server/controller/login/post.js @@ -8,45 +8,47 @@ const post = async(req, res) => { const body = req.body; - const user = await Admin.findOne({ - where: { - name: body.name, - }, - }); - - if (user == null) { - console.log("Invalid user or password"); - return res.status(500).json({ - err: { - message: "Invalid user or password" - } + await Admin.findOne({ + where: { + name: body.name, + }, }) - } - - if (!bcrypt.compareSync(body.password, user.password)) { - console.log('Invalid user or password'); - return res.json({ - err: { - message: 'Invalid user or password' + .then((user) => { + if (!bcrypt.compareSync(body.password, user.password)) { + console.log('Invalid user or password'); + return res.json({ + err: { + message: 'Invalid user or password' + } + }) } + + let token = jwt.sign({ + user + }, process.env.TOKEN_SEED, { expiresIn: process.env.TOKEN_EXP }); + + res.json({ + user, + token + }) }) - } + .catch(() => { + console.log("Invalid user or password"); + return res.status(500).json({ + err: { + message: "Invalid user or password" + } + }); - let token = jwt.sign({ - user - }, process.env.TOKEN_SEED, { expiresIn: process.env.TOKEN_EXP }); + });; - if (typeof localStorage === "undefined" || localStorage === null) { - var LocalStorage = require('node-localstorage').LocalStorage; - localStorage = new LocalStorage('./scratch'); - } - localStorage.setItem('token', token); + // if (typeof localStorage === "undefined" || localStorage === null) { + // var LocalStorage = require('node-localstorage').LocalStorage; + // localStorage = new LocalStorage('./scratch'); + // } + // localStorage.setItem('token', token); - res.json({ - user, - token - }) } diff --git a/server/middlewares/authentication.js b/server/middlewares/authentication.js index 7eadeb3..bfc1055 100644 --- a/server/middlewares/authentication.js +++ b/server/middlewares/authentication.js @@ -8,7 +8,8 @@ const verifyToken = (req, res, next) => { // } // let localToken = localStorage.getItem('token'); - let localToken = req.get('token'); + // let localToken = req.get('token'); + let localToken = req.header('token'); jwt.verify(localToken, process.env.TOKEN_SEED, (err, decoded) => { if (err) { diff --git a/server/models/install.js b/server/models/install.js index 020df0b..29d832b 100644 --- a/server/models/install.js +++ b/server/models/install.js @@ -6,7 +6,6 @@ const admin = require("./tablas/Admin"); const os = require("./tablas/OS"); const activofijo = require("./tablas/ActivoFijo"); const marca = require("./tablas/Marca"); -const descripcionadicional = require("./tablas/DescripcionAdicional"); const uso = require("./tablas/Uso"); const ubicacion = require("./tablas/Ubicacion"); const tipo = require("./tablas/Tipo"); @@ -34,8 +33,6 @@ async function remove() { console.log(logSymbols.success, "activo fijo"); await marca.drop(); console.log(logSymbols.success, "marca"); - await descripcionadicional.drop(); - console.log(logSymbols.success, "descripcion adicional"); await uso.drop(); console.log(logSymbols.success, "uso"); await ubicacion.drop(); @@ -61,8 +58,6 @@ async function install() { console.log(logSymbols.success, "activo fijo"); await marca.sync(); console.log(logSymbols.success, "marca"); - await descripcionadicional.sync(); - console.log(logSymbols.success, "descripcion adicional"); await uso.sync(); console.log(logSymbols.success, "uso"); await ubicacion.sync(); diff --git a/server/models/tablas/DescripcionAdicional.js b/server/models/tablas/DescripcionAdicional.js deleted file mode 100644 index 2e6f5a0..0000000 --- a/server/models/tablas/DescripcionAdicional.js +++ /dev/null @@ -1,21 +0,0 @@ -const Sequelize = require("sequelize"); -const sequelize = require("../../config/sequelize.conf"); - -class DescripcionAdicional extends Sequelize.Model {} -DescripcionAdicional.init({ - idDescripcion: { - type: Sequelize.INTEGER, - primaryKey: true, - autoIncrement: true, - allowNull: false, - }, - descripcion: { - type: Sequelize.CHAR, - allowNull: false, - }, -}, { - sequelize, - tableName: "descripcionAdicional", -}); - -module.exports = DescripcionAdicional; \ No newline at end of file diff --git a/server/models/tablas/Equipo.js b/server/models/tablas/Equipo.js index 54e0a28..2190b9a 100644 --- a/server/models/tablas/Equipo.js +++ b/server/models/tablas/Equipo.js @@ -3,7 +3,6 @@ const Sequelize = require("sequelize"); const sequelize = require("../../config/sequelize.conf"); const Inventario = require("./Inventario"); const Marca = require("./Marca"); -const DescripcionAdicional = require("./DescripcionAdicional"); const OS = require("./OS"); class Equipo extends Sequelize.Model {} @@ -57,7 +56,7 @@ Equipo.init({ Inventario.hasOne(Equipo, { foreignKey: 'noInventario' }); Marca.hasOne(Equipo, { foreignKey: 'idMarca' }); -// DescripcionAdicional.hasOne(Equipo, { foreignKey: 'idDescripcion' }); OS.hasOne(Equipo, { foreignKey: 'idOS' }); +ActivoFIjo.hasOne(Equipo, { foreignKey: 'idActivoFijo' }); module.exports = Equipo; \ No newline at end of file diff --git a/server/models/tablas/Printers.js b/server/models/tablas/Printers.js index 0496408..d23d218 100644 --- a/server/models/tablas/Printers.js +++ b/server/models/tablas/Printers.js @@ -3,6 +3,7 @@ const sequelize = require("../../config/sequelize.conf"); const Marca = require("./Marca"); const Tipo = require("./Tipo"); const Inventario = require("./Inventario"); +const ActivoFijo = require('./ActivoFijo'); class Printers extends Sequelize.Model {} Printers.init({ @@ -16,10 +17,14 @@ Printers.init({ type: Sequelize.CHAR, allowNull: false, }, - // modelo: { - // type: Sequelize.CHAR, - - // }, + modelo: { + type: Sequelize.CHAR, + allowNull: false + }, + descripcion: { + type: Sequelize.CHAR, + allowNull: false + }, }, { sequelize, tableName: "printers", @@ -28,5 +33,6 @@ Printers.init({ Inventario.hasOne(Printers, { foreignKey: 'noInventario' }); Marca.hasOne(Printers, { foreignKey: 'idMarca' }); Tipo.hasOne(Printers, { foreignKey: 'idTipo' }); +ActivoFijo.hasOne(Printers, { foreignKey: 'idActivoFijo' }); module.exports = Printers; \ No newline at end of file diff --git a/server/routes/user.js b/server/routes/user.js index 6a57b05..9265018 100644 --- a/server/routes/user.js +++ b/server/routes/user.js @@ -1,14 +1,20 @@ let express = require('express'); let app = express(); -const route = '/api/computers'; const computers = require('../controller/api/computers'); +const printers = require('../controller/api/printers'); const { verifyToken, verifyAdmin } = require('../middlewares/authentication'); -app.get(route, verifyToken, (req, res) => { +app.get('/api/computers', verifyToken, (req, res) => { return computers(req, res); }); +app.get('/api/printers', verifyToken, (req, res) => { + + return printers(req, res); + +}); + module.exports = app; \ No newline at end of file