This commit is contained in:
2021-04-27 17:14:42 -05:00
parent e6f149aaf9
commit 471f0ba8be
5 changed files with 231 additions and 12 deletions
+29
View File
@@ -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;
+185
View File
@@ -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
);
-8
View File
@@ -55,12 +55,4 @@ Investigador.init(
}
);
Investigador.belongsTo(Usuario, {
foreignKey: {
name: 'idUsuario',
type: DataTypes.INTEGER,
allowNull: false,
},
});
module.exports = Investigador;
-4
View File
@@ -20,10 +20,6 @@ Usuario.init(
type: DataTypes.STRING(60),
allowNull: true,
defaultValue: null,
},
tipoUsuario: {
type: DataTypes.INTEGER,
allowNull: false,
}
},
{
+17
View File
@@ -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;