From 7f210e5cb6501f9d0c0274d7875286880132c7e0 Mon Sep 17 00:00:00 2001 From: lemuel Date: Thu, 2 Sep 2021 12:13:55 -0500 Subject: [PATCH] =?UTF-8?q?aparentemente=20listo=20conexi=C3=B3n=20profeso?= =?UTF-8?q?res?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/config/mariadb.conf.js | 34 +++++++++++++++- server/controller/Usuario/escolares.js | 54 +++++++++++++++++--------- 2 files changed, 68 insertions(+), 20 deletions(-) diff --git a/server/config/mariadb.conf.js b/server/config/mariadb.conf.js index 10945e2..cac6294 100644 --- a/server/config/mariadb.conf.js +++ b/server/config/mariadb.conf.js @@ -8,15 +8,23 @@ const pool = mariadb.createPool({ database: process.env.ESCOLARES_DB, }); +const pool2 = mariadb.createPool({ + host: process.env.PROFESORES_HOST, + user: process.env.PROFESORES_USER, + password: process.env.PROFESORES_PASSWORD, + database: process.env.PROFESORES_DB, +}); + const obtenerAlumno = async (numeroCuenta) => { const conn = await pool.getConnection().catch((err) => { - throw new Error('No se pudo conectar con la db.' + err); + throw new Error('No se pudo conectar con la db. ' + err); }); return conn .query(`CALL busca_alumno_pcpuma('${numeroCuenta}')`) .then((rows) => { conn.end(); + console.log(rows, rows.length); if (rows[0].length === 0) return null; return rows[0][0]; }) @@ -26,4 +34,26 @@ const obtenerAlumno = async (numeroCuenta) => { }); }; -module.exports = obtenerAlumno; +const obtenerProfesor = async (numeroCuenta) => { + const conn = await pool2.getConnection().catch((err) => { + throw new Error('No se pudo conectar con la db. ' + err); + }); + + return conn + .query(`SELECT * FROM profesor WHERE no_trabajador = ${numeroCuenta}`) + .then((rows) => { + conn.end(); + console.log(rows[0]); + if (rows.length === 0) return null; + return rows[0]; + }) + .catch((err) => { + conn.end(); + throw new Error('Hubo un problema con el querry.' + err); + }); +}; + +module.exports = { obtenerAlumno, obtenerProfesor }; + +// obtenerAlumno('316313528'); +// obtenerProfesor('138158'); diff --git a/server/controller/Usuario/escolares.js b/server/controller/Usuario/escolares.js index 44a8824..8072382 100644 --- a/server/controller/Usuario/escolares.js +++ b/server/controller/Usuario/escolares.js @@ -1,4 +1,4 @@ -const obtenerAlumno = require('../../config/mariadb.conf'); +const { obtenerAlumno, obtenerProfesor } = require('../../config/mariadb.conf'); const validar = require('../../helper/validar'); const dbPath = '../../db/tablas'; const Usuario = require(`${dbPath}/Usuario`); @@ -14,29 +14,47 @@ const escolares = async (body) => { }) .then((res) => { if (!res) { - let alumno = {}; + let usuario = {}; + let esAlumno = false; return obtenerAlumno(numeroCuenta) .then(async (res) => { - alumno = res; - if (!alumno) - throw new Error('Este alumno no existe o no esta inscrito.'); - if (alumno.inscrito != 'SI') - throw new Error('Este alumno no esta inscrito este semestre.'); - return Carrera.findOne({ where: { carrera: alumno.carrera } }); - }) - .then((res) => { - if (!res) return Carrera.create({ carrera: alumno.carrera }); + if (!res) return obtenerProfesor(numeroCuenta); + esAlumno = true; return res; }) - .then((res) => - Usuario.create({ + .then(async (res) => { + usuario = res; + if (!usuario) + throw new Error( + 'Este nĂºmero de cuenta o de trabajador no existe.' + ); + if (esAlumno) { + if (usuario.inscrito != 'SI') + throw new Error('Este alumno no esta inscrito este semestre.'); + await Carrera.findOne({ + where: { carrera: usuario.carrera }, + }) + .then((res) => { + if (!res) return Carrera.create({ carrera: usuario.carrera }); + return res; + }) + .then((res) => { + usuario.Carrera = res; + usuario.nombre = usuario.nombre.trim(); + usuario.idTipoUsuario = 4; + }); + } else { + usuario.idTipoUsuario = 3; + usuario.nombre = `${usuario.a_paterno.trim()} ${usuario.a_materno.trim()} ${usuario.nombre.trim()}`; + } + return Usuario.create({ usuario: numeroCuenta, - nombre: alumno.nombre.trim(), - idCarrera: res.idCarrera, - idTipoUsuario: 4, - }) - ) + nombre: usuario.nombre, + idCarrera: usuario.Carrera.idCarrera, + idTipoUsuario: usuario.idTipoUsuario, + }); + }) .then((res) => Usuario.findOne({ where: { usuario: numeroCuenta },