From 471f0ba8be2ec0ea5b109470d58edefb1e1b0921 Mon Sep 17 00:00:00 2001 From: mxrco Date: Tue, 27 Apr 2021 17:14:42 -0500 Subject: [PATCH] login --- server/controller/Usuario/login.js | 29 +++++ server/db/install.js | 185 +++++++++++++++++++++++++++++ server/db/tablas/Investigador.js | 8 -- server/db/tablas/Usuario.js | 4 - server/routes/Usuario.js | 17 +++ 5 files changed, 231 insertions(+), 12 deletions(-) create mode 100644 server/routes/Usuario.js diff --git a/server/controller/Usuario/login.js b/server/controller/Usuario/login.js index e69de29..7309c49 100644 --- a/server/controller/Usuario/login.js +++ b/server/controller/Usuario/login.js @@ -0,0 +1,29 @@ +const { comparar } = require('../../helper/encriptar'); +const validar = require('../../helper/validar'); +const { crearToken } = require('../../middleware/autentificacion'); +const Usuario = require('../../db/tablas/Usuario'); + +const login = async (body) => { + const usuario = validar.validar(body.usuario, 'El usuario', 60); + const password = validar.validarAlfanumerico( + body.password, + 'La contraseña', + 20 + ); + + return Usuario.findOne({ + where: { usuario } + }).then((res) => { + if (!res) throw new Error('No existe este usuario.'); + if (comparar(password, res.password)) { + delete res.dataValues.password; + return { + Usuario: res, + token: crearToken(res.idUsuario), + }; + } + throw new Error('La contraseña es incorrecta'); + }); +}; + +module.exports = login; diff --git a/server/db/install.js b/server/db/install.js index 48ae471..47b09f8 100644 --- a/server/db/install.js +++ b/server/db/install.js @@ -73,9 +73,194 @@ const sync = async () => { console.log('La tabla DatosAcademicos se instalo correctamente.'.magenta); }; +const dataTipoDatosAcademicos = async () => { + const data = ['Carrera', 'Maestria', 'Doctorado', 'LineaInv', 'Proyecto']; + + console.log('\nPaso 3)Insertando data TipoDatosAcademicos.'.bold.blue); + for (let i = 0; i < data.length; i++) { + await TipoDatosAcademicos.create({ + TipoDatosAcademicos: data[i], + }); + console.log(`Se agrego el TipoDatosAcademicos ${data[i]}.`.magenta); + } +}; + +const dataCategoria = async () => { + const data = [ + 'Investigador de Carrera Asociado Ordinario Nivel "C" de Tiempo Completo Interino', + 'Investigador de Carrera Titular Ordinario Nivel "A" de Tiempo Completo Definitivo', + 'Investigador de Carrera Titular Ordinario Nivel "B" de Tiempo Completo Definitivo', + 'Profesor de Carrera Asociado Ordinario Nivel "A" de Medio Tiempo Interino', + 'Profesor de Carrera Asociado Ordinario Nivel "A" de Tiempo Completo Interino', + 'Profesor de Carrera Asociado Ordinario Nivel "B" de Medio Tiempo Definitivo', + 'Profesor de Carrera Asociado Ordinario Nivel "B" de Tiempo Completo Definitivo', + 'Profesor de Carrera Asociado Ordinario Nivel "B" de Tiempo Completo Interino', + 'Profesor de Carrera Asociado Ordinario Nivel "B" Medio Tiempo Interino No Definitivo', + 'Profesor de Carrera Asociado Ordinario Nivel "B" Tiempo Completo Interino No Definitivo', + 'Profesor de Carrera Asociado Ordinario Nivel "C" de Medio Tiempo Definitivo', + 'Profesor de Carrera Asociado Ordinario Nivel "C" de Medio Tiempo Interino', + 'Profesor de Carrera Asociado Ordinario Nivel "C" de Tiempo Completo Definitivo', + 'Profesor de Carrera Asociado Ordinario Nivel "C" de Tiempo Completo Interino', + 'Profesor de Carrera Asociado Ordinario Nivel "C" de Tiempo Completo No Definitivo', + 'Profesor de Carrera Asociado Ordinario Nivel "C" Tiempo Completo Interino No Definitivo', + 'Profesor de Carrera Titular Ordinario Nivel "A" de Medio Tiempo Definitivo', + 'Profesor de Carrera Titular Ordinario Nivel "A" de Tiempo Completo Definitivo', + 'Profesor de Carrera Titular Ordinario Nivel "A" de Tiempo Completo Interino', + 'Profesor de Carrera Titular Ordinario Nivel "A" Medio Tiempo Interino', + 'Profesor de Carrera Titular Ordinario Nivel "B" de Tiempo Completo Definitivo', + 'Profesor de Carrera Titular Ordinario Nivel "B" de Tiempo Completo No Definitivo', + 'Profesor de Carrera Titular Ordinario Nivel "C" de Medio Tiempo Definitivo', + 'Profesor de Carrera Titular Ordinario Nivel "C" de Tiempo Completo Definitivo', + 'Profesor de Carrera Titular Ordinario Nivel "C" de Tiempo Completo No Definitivo', + 'Técnico Académico Asociado "C" tiempo completo NO Definitivo', + 'Técnico Académico Asociado Ordinario Nivel "A" de Medio Tiempo Definitivo', + 'Técnico Académico Asociado Ordinario Nivel "A" de Tiempo Completo Definitivo', + 'Técnico Académico Asociado Ordinario Nivel "A" de Tiempo Completo Interino', + 'Técnico Académico Asociado Ordinario Nivel "B" de Tiempo Completo Definitivo', + 'Técnico Académico Asociado Ordinario Nivel "B" de Tiempo Completo Interino', + 'Técnico Académico Asociado Ordinario Nivel "C" de Medio Tiempo No Definitivo', + 'Técnico Académico Asociado Ordinario Nivel "C" de Tiempo Completo Definitivo', + 'Técnico Académico Auxiliar Ordinario Nivel "A" de Medio Tiempo Interino', + 'Técnico Académico Auxiliar Ordinario Nivel "B" de Medio Tiempo Definitivo', + 'Técnico Académico Auxiliar Ordinario Nivel "B" de Tiempo Completo Interino', + 'Técnico Académico Auxiliar Ordinario Nivel "C" Tiempo Completo Interino No Definitivo', + 'Técnico Académico Titular Ordinario Nivel "A" de Tiempo Completo Definitivo', + 'Técnico Académico Titular Ordinario Nivel "B" de Tiempo Completo Definitivo', + 'Técnico Académico Titular Ordinario Nivel "C" de Tiempo Completo Definitivo', + ] + + console.log('\nPaso 4) Insertando data Categoria.'.bold.blue); + for (let i = 0; i < data.length; i++) { + await Categoria.create({ + Categoria: data[i], + }); + console.log(`Se agrego la Categoria ${data[i]}.`.magenta); + } +} + +const dataEdificio = async () => { + const data = [ + 'No asignado', + 'Campus Juriquilla', + 'Centro Cultural Acatlán', + 'Centro de Desarrollo Tecnológico', + 'Centro de Difusión Cultural', + 'Centro de Enseñanza de Idiomas', + 'Centro de Información y Documentación', + 'Centro Tecnológico para la Educación a Distancia', + 'COESI', + 'Diseño y Edificación', + 'Edificio A-1', + 'Edificio A-10', + 'Edificio A-11', + 'Edificio A-12', + 'Edificio A-13', + 'Edificio A-14', + 'Edificio A-15', + 'Edificio A-2', + 'Edificio A-3', + 'Edificio A-4', + 'Edificio A-5', + 'Edificio A-6', + 'Edificio A-7', + 'Edificio A-8', + 'Edificio A-9', + 'Edificio de Apoyo a la Docencia', + 'Edificio de Comunicacion y Disenio', + 'Edificio de Extensión Cultural', + 'Edificio de Gobierno', + 'Edificio de Posgrado', + 'Edificio de Servicios Generales', + 'Edificio de Talleres de Comunicación y Diseño', + 'Edificio del Programa de Investigación', + 'Gabinete y Tipografía', + 'Laboratorios de Ingeniería Civil', + 'Posgrado Laboratorios', + 'Seminarios', + 'Servicios Académicos', + 'Talleres y Laboratorios', + 'Unidad de Administración Escolar', + 'Unidad de Investigación Multidisciplinaria', + 'Unidad de Seminarios, planta alta', + 'Unidad de Seminarios, planta baja', + ] + + console.log('\nPaso 5) Insertando data Edificio.'.bold.blue); + for (let i = 0; i < data.length; i++) { + await Edificio.create({ + Edificio: data[i], + }); + console.log(`Se agrego el Edificio ${data[i]}.`.magenta); + } +} + +const dataAdscripcion = async () => { + const data = [ + 'Departamento de Español para Extranjeros y Lenguas no Indoeuropeas', + 'Departamento de Extensión Cultural', + 'Departamento de Francés', + 'Departamento de Inglés', + 'Departamento de Italiano', + 'Departamento de Servicio Social y Bolsa de Trabajo', + 'División del Sistema Universidad Abierta y Educación a Distancia', + 'Especialización en Costos en la Construcción', + 'Especialización en Finanzas Públicas', + 'Especialización en Geotecnia', + 'Especialización en Sistemas de Calidad', + 'Maestría en Docencia para la Educación Media Superior', + 'Maestría en Estudios México-Estados Unidos', + 'Posgrado en Derecho', + 'Posgrado en Economía', + 'Programa de Actuaría', + 'Programa de Arquitectura', + 'Programa de Derecho', + 'Programa de Diseño Gráfico', + 'Programa de Economía', + 'Programa de Humanidades', + 'Programa de Ingeniería Civil', + 'Programa de la Licenciatura en Enseñanza de Inglés', + 'Programa de Matemáticas Aplicadas y Computación', + 'Programa de Pedagogía', + 'Programa de Periodismo y Comunicación Colectiva', + 'Programa de Sociología', + 'Programa Político', + 'Secretaría de Estudios Profesionales', + 'Secretaría de la Dirección', + 'Secretaría General', + 'Unidad de Investigación Multidisciplinaria', + 'Unidad de Servicios Editoriales', + 'Unidad de Talleres, Laboratorios y Audiovisuales', + 'Unidad del Centro de Información y Documentación', + ] + console.log('\nPaso 6) Insertando data Adscripcion.'.bold.blue); + for (let i = 0; i < data.length; i++) { + await Adscripcion.create({ + Adscripcion: data[i], + }); + console.log(`Se agrego la Adscripcion ${data[i]}.`.magenta); + } +} + +const dataTipoContacto = async () => { + const data = ['Correo', 'Telefono']; + + console.log('\nPaso 7)Insertando data TipoContacto.'.bold.blue); + for (let i = 0; i < data.length; i++) { + await TipoContacto.create({ + TipoContacto: data[i], + }); + console.log(`Se agrego el TipoContacto ${data[i]}.`.magenta); + } +}; + const exe = async () => { await drop(); await sync(); + await dataTipoDatosAcademicos(); + await dataCategoria(); + await dataEdificio(); + await dataAdscripcion(); + await dataTipoContacto(); console.log( '\nSe ha instalado exitosamente la base de datos.\n'.underline.bold.green ); diff --git a/server/db/tablas/Investigador.js b/server/db/tablas/Investigador.js index 18a118b..6576d46 100644 --- a/server/db/tablas/Investigador.js +++ b/server/db/tablas/Investigador.js @@ -55,12 +55,4 @@ Investigador.init( } ); -Investigador.belongsTo(Usuario, { - foreignKey: { - name: 'idUsuario', - type: DataTypes.INTEGER, - allowNull: false, - }, -}); - module.exports = Investigador; diff --git a/server/db/tablas/Usuario.js b/server/db/tablas/Usuario.js index ed4c608..c3d1370 100644 --- a/server/db/tablas/Usuario.js +++ b/server/db/tablas/Usuario.js @@ -20,10 +20,6 @@ Usuario.init( type: DataTypes.STRING(60), allowNull: true, defaultValue: null, - }, - tipoUsuario: { - type: DataTypes.INTEGER, - allowNull: false, } }, { diff --git a/server/routes/Usuario.js b/server/routes/Usuario.js new file mode 100644 index 0000000..deab651 --- /dev/null +++ b/server/routes/Usuario.js @@ -0,0 +1,17 @@ +const express = require('express'); +const app = express(); +// const { verificaToken } = require('../middleware/autentificacion'); +const route = '/usuario'; +const login = require('../controller/Operador/login'); + +app.post(`${route}`, (req, res) => { + return login(req.body) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json(err); + }); +}); + +module.exports = app; \ No newline at end of file