Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 07ec951c8c | |||
| 8c992c29c4 | |||
| bea8a7b266 |
@@ -0,0 +1,25 @@
|
|||||||
|
# Base image
|
||||||
|
FROM node:16-alpine
|
||||||
|
|
||||||
|
# Install build tools and Python
|
||||||
|
RUN apk add --no-cache python3 make g++ && \
|
||||||
|
python3 -m ensurepip && \
|
||||||
|
pip3 install --no-cache --upgrade pip
|
||||||
|
|
||||||
|
# Set working directory
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy package.json and package-lock.json
|
||||||
|
COPY package*.json ./
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
# Copy the rest of the application code
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Expose the port the app runs on
|
||||||
|
EXPOSE 3000
|
||||||
|
|
||||||
|
# Command to run the application
|
||||||
|
CMD ["npm", "run", "dev"]
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "Node.js API Dev Container",
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "Dockerfile",
|
||||||
|
"context": ".."
|
||||||
|
},
|
||||||
|
"forwardPorts": [3000],
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.defaultProfile.linux": "bash"
|
||||||
|
},
|
||||||
|
"extensions": [
|
||||||
|
"dbaeumer.vscode-eslint",
|
||||||
|
"esbenp.prettier-vscode"
|
||||||
|
],
|
||||||
|
"postCreateCommand": "npm install",
|
||||||
|
"remoteUser": "node"
|
||||||
|
}
|
||||||
|
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
-- 1) Insertar un par de servicios
|
||||||
|
--INSERT INTO servicio VALUES ('094123123123','ferelena27@gmail.com','5538836200','Calle D #43 Colonia Modelo, Naucalpan de Juárez, Edo Mex.','2020-01-28 00:00:00','2020-07-28 00:00:00','1996-06-27 00:00:00','1zAAbHd2Gn8E7JougyynxHVLFJCHYM4U7','1ygjJyezG88X6qd-wV3i7PMDfW7yDGAbJ','1qzgUwhXqCRXPiYd0w8TADWB2Ja-0Geqy','1i-mmx-hlOVcdYHxoNM8ym96pwL2YQKxP','servicio y asesoría de cómputo','Lic. Araceli Pérez Palma',1,'2020-03-04 19:25:19','2021-04-26 19:21:57',2990,1,6,28,872,835,'2021-04-26 19:21:56');
|
||||||
|
--INSERT INTO servicio VALUES ('091234123123','ferelena27@gmail.com','5538836200','Calle D #43 Colonia Modelo, Naucalpan de Juárez, Edo Mex.','2020-01-28 00:00:00','2020-07-28 00:00:00','1996-06-27 00:00:00','1zAAbHd2Gn8E7JougyynxHVLFJCHYM4U7','1ygjJyezG88X6qd-wV3i7PMDfW7yDGAbJ','1qzgUwhXqCRXPiYd0w8TADWB2Ja-0Geqy','1i-mmx-hlOVcdYHxoNM8ym96pwL2YQKxP','servicio y asesoría de cómputo','Lic. Araceli Pérez Palma',1,'2020-03-04 19:25:19','2021-04-26 19:21:57',2990,1,6,28,872,835,'2021-04-26 19:21:56');
|
||||||
|
|
||||||
|
-- 2) Insertar cuestionarios, cada uno asociado a un servicio
|
||||||
|
INSERT INTO Cuestionario (
|
||||||
|
idServicio, version, titulo, `desc`, dirigidoA, createdAt
|
||||||
|
) VALUES
|
||||||
|
(1, 'v1.0', 'Cuestionario Inicial', 'Descripción breve', 'Alumnos', NOW()),
|
||||||
|
(2, 'v2.0', 'Cuestionario Avanzado', 'Otro cuestionario', 'Programas', '2025-01-23 10:25:00');
|
||||||
|
|
||||||
|
-- 3) Insertar en cuestionario_alumno_2
|
||||||
|
INSERT INTO cuestionario_alumno_2 (
|
||||||
|
idCuestionario,
|
||||||
|
createdAt,
|
||||||
|
p12_A_1,
|
||||||
|
p12_A_2,
|
||||||
|
p12_A_3,
|
||||||
|
p12_A_4,
|
||||||
|
p12_B_1,
|
||||||
|
p12_B_2
|
||||||
|
) VALUES
|
||||||
|
(1, NOW(), 'respuesta1', 'respuesta2', 'respuesta3', 'respuesta4', 'respuesta5', 'respuesta6'),
|
||||||
|
(1, '2025-01-23 11:00:00', 'respA', 'respB', 'respC', 'respD', 'respE', 'respF');
|
||||||
|
|
||||||
|
-- 4) Insertar en cuestionario_programa_2
|
||||||
|
INSERT INTO cuestionario_programa_2 (
|
||||||
|
idCuestionario,
|
||||||
|
createdAt,
|
||||||
|
p3_A_1,
|
||||||
|
p3_A_2,
|
||||||
|
p3_A_3,
|
||||||
|
p3_A_4,
|
||||||
|
p3_B_1
|
||||||
|
) VALUES
|
||||||
|
(2, NOW(), 'respuesta1', 'respuesta2', 'respuesta3', 'respuesta4', 'respuesta5'),
|
||||||
|
(2, '2025-01-23 12:15:00', 'respX', 'respY', 'respZ', 'respW', 'respQ');
|
||||||
Generated
+1215
-2125
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
+494
@@ -0,0 +1,494 @@
|
|||||||
|
-- MariaDB dump 10.17 Distrib 10.4.10-MariaDB, for Win64 (AMD64)
|
||||||
|
--
|
||||||
|
-- Host: 132.248.180.82 Database: Iris_Produccion
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 10.6.7-MariaDB
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!40101 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `carrera`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `carrera`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `carrera` (
|
||||||
|
`idCarrera` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`carrera` varchar(50) NOT NULL,
|
||||||
|
PRIMARY KEY (`idCarrera`),
|
||||||
|
UNIQUE KEY `idCarrera` (`idCarrera`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=latin1;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `carrera`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `carrera` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `carrera` DISABLE KEYS */;
|
||||||
|
/*!40000 ALTER TABLE `carrera` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `caso_especial`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `caso_especial`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `caso_especial` (
|
||||||
|
`idCasoEspecial` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`creditos` varchar(3) NOT NULL,
|
||||||
|
`correo` varchar(60) NOT NULL,
|
||||||
|
`telefono` varchar(15) NOT NULL,
|
||||||
|
`institucion` varchar(200) DEFAULT NULL,
|
||||||
|
`dependencia` varchar(200) DEFAULT NULL,
|
||||||
|
`motivo` varchar(1) DEFAULT NULL,
|
||||||
|
`direccion` varchar(200) NOT NULL,
|
||||||
|
`fechaInicio` datetime NOT NULL,
|
||||||
|
`fechaFin` datetime NOT NULL,
|
||||||
|
`fechaNacimiento` datetime NOT NULL,
|
||||||
|
`carpeta` varchar(60) NOT NULL,
|
||||||
|
`archivoZip` varchar(60) NOT NULL,
|
||||||
|
`createdAt` datetime NOT NULL,
|
||||||
|
`updatedAt` datetime NOT NULL,
|
||||||
|
`idUsuario` int(11) NOT NULL,
|
||||||
|
`idCarrera` int(11) NOT NULL,
|
||||||
|
`idStatus` int(11) NOT NULL DEFAULT 1,
|
||||||
|
PRIMARY KEY (`idCasoEspecial`),
|
||||||
|
UNIQUE KEY `idCasoEspecial` (`idCasoEspecial`),
|
||||||
|
KEY `idUsuario` (`idUsuario`),
|
||||||
|
KEY `idCarrera` (`idCarrera`),
|
||||||
|
KEY `idStatus` (`idStatus`),
|
||||||
|
CONSTRAINT `caso_especial_ibfk_1` FOREIGN KEY (`idUsuario`) REFERENCES `usuario` (`idUsuario`) ON DELETE NO ACTION ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `caso_especial_ibfk_2` FOREIGN KEY (`idCarrera`) REFERENCES `carrera` (`idCarrera`) ON DELETE NO ACTION ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `caso_especial_ibfk_3` FOREIGN KEY (`idStatus`) REFERENCES `status` (`idStatus`) ON DELETE NO ACTION ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=392 DEFAULT CHARSET=latin1;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `caso_especial`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `caso_especial` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `caso_especial` DISABLE KEYS */;
|
||||||
|
/*!40000 ALTER TABLE `caso_especial` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `cuestionario_alumno`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `cuestionario_alumno`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `cuestionario_alumno` (
|
||||||
|
`idCuestionarioAlumno` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`sexo` varchar(1) NOT NULL,
|
||||||
|
`edad` varchar(2) NOT NULL,
|
||||||
|
`servicioMedico` varchar(100) NOT NULL,
|
||||||
|
`p1` tinyint(1) NOT NULL,
|
||||||
|
`p2` tinyint(1) NOT NULL,
|
||||||
|
`p3` varchar(150) NOT NULL,
|
||||||
|
`p4` tinyint(1) NOT NULL,
|
||||||
|
`p5` varchar(7) NOT NULL,
|
||||||
|
`p6` tinyint(1) NOT NULL,
|
||||||
|
`p7` tinyint(1) NOT NULL,
|
||||||
|
`p8` varchar(5) NOT NULL,
|
||||||
|
`p9` tinyint(1) NOT NULL,
|
||||||
|
`p10` tinyint(1) NOT NULL,
|
||||||
|
`p11` tinyint(1) NOT NULL,
|
||||||
|
`p12` tinyint(1) NOT NULL,
|
||||||
|
`p13` tinyint(1) NOT NULL,
|
||||||
|
`p14` varchar(7) NOT NULL,
|
||||||
|
`p15` varchar(7) NOT NULL,
|
||||||
|
`p16` varchar(2) NOT NULL,
|
||||||
|
`p17` varchar(5) NOT NULL,
|
||||||
|
`p18` tinyint(1) NOT NULL,
|
||||||
|
`p19` tinyint(1) NOT NULL,
|
||||||
|
`p20` tinyint(1) NOT NULL,
|
||||||
|
`p21` varchar(9) NOT NULL,
|
||||||
|
`p22` varchar(23) NOT NULL,
|
||||||
|
`p23` varchar(8) NOT NULL,
|
||||||
|
`p24` varchar(8) NOT NULL,
|
||||||
|
`p25` tinyint(1) NOT NULL,
|
||||||
|
`p26` tinyint(1) NOT NULL,
|
||||||
|
`p27` varchar(400) NOT NULL,
|
||||||
|
`p28` varchar(1) NOT NULL,
|
||||||
|
`p29` varchar(1) NOT NULL,
|
||||||
|
`p30` varchar(400) NOT NULL,
|
||||||
|
`createdAt` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (`idCuestionarioAlumno`),
|
||||||
|
UNIQUE KEY `idCuestionarioAlumno` (`idCuestionarioAlumno`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=13564 DEFAULT CHARSET=latin1;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `cuestionario_alumno`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `cuestionario_alumno` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `cuestionario_alumno` DISABLE KEYS */;
|
||||||
|
/*!40000 ALTER TABLE `cuestionario_alumno` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `cuestionario_programa`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `cuestionario_programa`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `cuestionario_programa` (
|
||||||
|
`idCuestionarioPrograma` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`actividad1` varchar(400) NOT NULL,
|
||||||
|
`actividad2` varchar(400) NOT NULL,
|
||||||
|
`actividad3` varchar(400) NOT NULL,
|
||||||
|
`actividad4` varchar(400) NOT NULL,
|
||||||
|
`actividad5` varchar(400) NOT NULL,
|
||||||
|
`retroalimentacion` varchar(9) NOT NULL,
|
||||||
|
`p6` varchar(800) DEFAULT NULL,
|
||||||
|
`p7` varchar(800) NOT NULL,
|
||||||
|
`createdAt` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (`idCuestionarioPrograma`),
|
||||||
|
UNIQUE KEY `idCuestionarioPrograma` (`idCuestionarioPrograma`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=13582 DEFAULT CHARSET=latin1;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `cuestionario_programa`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `cuestionario_programa` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `cuestionario_programa` DISABLE KEYS */;
|
||||||
|
/*!40000 ALTER TABLE `cuestionario_programa` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `programa`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `programa`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `programa` (
|
||||||
|
`idPrograma` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`institucion` varchar(120) NOT NULL,
|
||||||
|
`dependencia` varchar(120) NOT NULL,
|
||||||
|
`programa` varchar(280) NOT NULL,
|
||||||
|
`clavePrograma` varchar(20) NOT NULL,
|
||||||
|
`acatlan` tinyint(1) NOT NULL DEFAULT 0,
|
||||||
|
`activo` tinyint(1) NOT NULL DEFAULT 1,
|
||||||
|
`idUsuario` int(11) NOT NULL,
|
||||||
|
PRIMARY KEY (`idPrograma`),
|
||||||
|
UNIQUE KEY `idPrograma` (`idPrograma`),
|
||||||
|
KEY `idUsuario` (`idUsuario`),
|
||||||
|
CONSTRAINT `programa_ibfk_1` FOREIGN KEY (`idUsuario`) REFERENCES `usuario` (`idUsuario`) ON DELETE NO ACTION ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=11518 DEFAULT CHARSET=latin1;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `programa`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `programa` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `programa` DISABLE KEYS */;
|
||||||
|
/*!40000 ALTER TABLE `programa` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `servicio`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `servicio`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `servicio` (
|
||||||
|
`idServicio` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`creditos` varchar(3) NOT NULL,
|
||||||
|
`correo` varchar(60) NOT NULL,
|
||||||
|
`telefono` varchar(15) DEFAULT NULL,
|
||||||
|
`direccion` varchar(200) DEFAULT NULL,
|
||||||
|
`fechaInicio` datetime NOT NULL,
|
||||||
|
`fechaFin` datetime NOT NULL,
|
||||||
|
`fechaNacimiento` datetime DEFAULT NULL,
|
||||||
|
`carpeta` varchar(60) NOT NULL,
|
||||||
|
`cartaAceptacion` varchar(60) NOT NULL,
|
||||||
|
`cartaTermino` varchar(60) DEFAULT NULL,
|
||||||
|
`informeGlobal` varchar(60) DEFAULT NULL,
|
||||||
|
`programaInterno` varchar(250) DEFAULT NULL,
|
||||||
|
`profesor` varchar(50) DEFAULT NULL,
|
||||||
|
`vistoBuenoAcatlan` tinyint(1) DEFAULT NULL,
|
||||||
|
`createdAt` datetime NOT NULL,
|
||||||
|
`updatedAt` datetime NOT NULL,
|
||||||
|
`idUsuario` int(11) NOT NULL,
|
||||||
|
`idCarrera` int(11) NOT NULL,
|
||||||
|
`idStatus` int(11) NOT NULL DEFAULT 1,
|
||||||
|
`idPrograma` int(11) NOT NULL,
|
||||||
|
`idCuestionarioAlumno` int(11) DEFAULT NULL,
|
||||||
|
`idCuestionarioPrograma` int(11) DEFAULT NULL,
|
||||||
|
`fechaLiberacion` datetime DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`idServicio`),
|
||||||
|
UNIQUE KEY `idServicio` (`idServicio`),
|
||||||
|
KEY `idUsuario` (`idUsuario`),
|
||||||
|
KEY `idCarrera` (`idCarrera`),
|
||||||
|
KEY `idStatus` (`idStatus`),
|
||||||
|
KEY `idPrograma` (`idPrograma`),
|
||||||
|
KEY `idCuestionarioAlumno` (`idCuestionarioAlumno`),
|
||||||
|
KEY `idCuestionarioPrograma` (`idCuestionarioPrograma`),
|
||||||
|
CONSTRAINT `servicio_ibfk_1` FOREIGN KEY (`idUsuario`) REFERENCES `usuario` (`idUsuario`) ON DELETE NO ACTION ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `servicio_ibfk_2` FOREIGN KEY (`idCarrera`) REFERENCES `carrera` (`idCarrera`) ON DELETE NO ACTION ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `servicio_ibfk_3` FOREIGN KEY (`idStatus`) REFERENCES `status` (`idStatus`) ON DELETE NO ACTION ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `servicio_ibfk_4` FOREIGN KEY (`idPrograma`) REFERENCES `programa` (`idPrograma`) ON DELETE NO ACTION ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `servicio_ibfk_5` FOREIGN KEY (`idCuestionarioAlumno`) REFERENCES `cuestionario_alumno` (`idCuestionarioAlumno`) ON DELETE SET NULL ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `servicio_ibfk_6` FOREIGN KEY (`idCuestionarioPrograma`) REFERENCES `cuestionario_programa` (`idCuestionarioPrograma`) ON DELETE SET NULL ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=17310 DEFAULT CHARSET=latin1;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `servicio`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `servicio` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `servicio` DISABLE KEYS */;
|
||||||
|
/*!40000 ALTER TABLE `servicio` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `status`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `status`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `status` (
|
||||||
|
`idStatus` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`status` varchar(30) NOT NULL,
|
||||||
|
PRIMARY KEY (`idStatus`),
|
||||||
|
UNIQUE KEY `idStatus` (`idStatus`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `status`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `status` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `status` DISABLE KEYS */;
|
||||||
|
/*!40000 ALTER TABLE `status` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `tipo_usuario`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `tipo_usuario`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `tipo_usuario` (
|
||||||
|
`idTipoUsuario` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`tipoUsuario` varchar(15) NOT NULL,
|
||||||
|
PRIMARY KEY (`idTipoUsuario`),
|
||||||
|
UNIQUE KEY `idTipoUsuario` (`idTipoUsuario`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `tipo_usuario`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `tipo_usuario` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `tipo_usuario` DISABLE KEYS */;
|
||||||
|
/*!40000 ALTER TABLE `tipo_usuario` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `usuario`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `usuario`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `usuario` (
|
||||||
|
`idUsuario` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`usuario` varchar(100) NOT NULL,
|
||||||
|
`password` varchar(60) DEFAULT NULL,
|
||||||
|
`nombre` varchar(70) DEFAULT NULL,
|
||||||
|
`activo` tinyint(1) NOT NULL,
|
||||||
|
`idTipoUsuario` int(11) NOT NULL,
|
||||||
|
PRIMARY KEY (`idUsuario`),
|
||||||
|
UNIQUE KEY `idUsuario` (`idUsuario`),
|
||||||
|
UNIQUE KEY `usuario` (`usuario`),
|
||||||
|
KEY `idTipoUsuario` (`idTipoUsuario`),
|
||||||
|
CONSTRAINT `usuario_ibfk_1` FOREIGN KEY (`idTipoUsuario`) REFERENCES `tipo_usuario` (`idTipoUsuario`) ON DELETE NO ACTION ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=19930 DEFAULT CHARSET=latin1;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `usuario`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `usuario` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `usuario` DISABLE KEYS */;
|
||||||
|
/*!40000 ALTER TABLE `usuario` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping routines for database 'Iris_Produccion'
|
||||||
|
--
|
||||||
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||||
|
|
||||||
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
|
-- Dump completed on 2025-01-12 23:25:49
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* CREATE TABLE `servicio` (
|
||||||
|
`idServicio` INT PRIMARY KEY
|
||||||
|
); */
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Cuestionario`;
|
||||||
|
CREATE TABLE `Cuestionario` (
|
||||||
|
`idCuestionario` INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
|
||||||
|
|
||||||
|
`idCuestionarioAlumno` INT, -- Agregado para relación con alumnos
|
||||||
|
`idCuestionarioPrograma` INT, -- Agregado para relación con programas
|
||||||
|
|
||||||
|
`idCuestionarioAlumno1` INT, -- Agregado para relación con alumnos
|
||||||
|
`idCuestionarioPrograma1` INT, -- Agregado para relación con programas
|
||||||
|
|
||||||
|
`idServicio` INT,
|
||||||
|
`version` VARCHAR(50),
|
||||||
|
`titulo` VARCHAR(50),
|
||||||
|
`desc` VARCHAR(50),
|
||||||
|
`dirigidoA` VARCHAR(50),
|
||||||
|
`createdAt` DATETIME
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `cuestionario_alumno_2`;
|
||||||
|
CREATE TABLE `cuestionario_alumno_2` (
|
||||||
|
`idCuestionarioAlumno2` INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
|
||||||
|
|
||||||
|
`createdAt` DATETIME,
|
||||||
|
|
||||||
|
|
||||||
|
`p12_A_1` VARCHAR(50),
|
||||||
|
`p12_A_2` VARCHAR(50),
|
||||||
|
`p12_A_3` VARCHAR(50),
|
||||||
|
`p12_A_4` VARCHAR(50),
|
||||||
|
`p12_B_1` VARCHAR(50),
|
||||||
|
`p12_B_2` VARCHAR(50),
|
||||||
|
`p12_B_3` VARCHAR(50),
|
||||||
|
`p12_B_4` VARCHAR(50),
|
||||||
|
`p12_C_1` VARCHAR(50),
|
||||||
|
`p12_C_2` VARCHAR(50),
|
||||||
|
`p12_C_3` VARCHAR(50),
|
||||||
|
`p12_C_4` VARCHAR(50),
|
||||||
|
`p10_1` VARCHAR(50),
|
||||||
|
`p10_2` VARCHAR(50),
|
||||||
|
`p10_3` VARCHAR(50),
|
||||||
|
`p11_1` VARCHAR(50),
|
||||||
|
`p11_2` VARCHAR(50),
|
||||||
|
`p11_3` VARCHAR(50),
|
||||||
|
`p11_4` VARCHAR(50),
|
||||||
|
`p17_1` VARCHAR(50),
|
||||||
|
`p17_2` VARCHAR(50),
|
||||||
|
`p17_3` VARCHAR(50),
|
||||||
|
`p3_1` VARCHAR(50),
|
||||||
|
`p3_2` VARCHAR(50),
|
||||||
|
`p3_3` VARCHAR(50),
|
||||||
|
`p3_4` VARCHAR(50),
|
||||||
|
`p12_D_1` VARCHAR(50),
|
||||||
|
`p12_D_2` VARCHAR(50),
|
||||||
|
`p12_D_3` VARCHAR(50),
|
||||||
|
`p12_D_4` VARCHAR(50),
|
||||||
|
`p12_D_5` VARCHAR(50),
|
||||||
|
`p1` VARCHAR(150),
|
||||||
|
`p2` VARCHAR(50),
|
||||||
|
`p4` VARCHAR(50),
|
||||||
|
`p5` VARCHAR(50),
|
||||||
|
`p6` VARCHAR(50),
|
||||||
|
`p7` VARCHAR(50),
|
||||||
|
`p8` VARCHAR(50),
|
||||||
|
`p9` VARCHAR(50),
|
||||||
|
`p13` VARCHAR(50),
|
||||||
|
`p14` VARCHAR(50),
|
||||||
|
`p15` VARCHAR(50),
|
||||||
|
`p16` VARCHAR(50),
|
||||||
|
`p18` VARCHAR(50)
|
||||||
|
);
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `cuestionario_programa_2`;
|
||||||
|
CREATE TABLE `cuestionario_programa_2` (
|
||||||
|
`idCuestionarioPrograma2` INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
|
||||||
|
`createdAt` DATETIME,
|
||||||
|
|
||||||
|
`p3_A_1` VARCHAR(50),
|
||||||
|
`p3_A_2` VARCHAR(50),
|
||||||
|
`p3_A_3` VARCHAR(50),
|
||||||
|
`p3_A_4` VARCHAR(50),
|
||||||
|
`p3_B_1` VARCHAR(50),
|
||||||
|
`p3_B_2` VARCHAR(50),
|
||||||
|
`p3_B_3` VARCHAR(50),
|
||||||
|
`p3_B_4` VARCHAR(50),
|
||||||
|
`p3_C_1` VARCHAR(50),
|
||||||
|
`p3_C_2` VARCHAR(50),
|
||||||
|
`p3_C_3` VARCHAR(50),
|
||||||
|
`p3_C_4` VARCHAR(50),
|
||||||
|
`p3_C_5` VARCHAR(50),
|
||||||
|
`p3_D_1` VARCHAR(50),
|
||||||
|
`p3_D_2` VARCHAR(50),
|
||||||
|
`p3_D_3` VARCHAR(50),
|
||||||
|
`p3_D_4` VARCHAR(50),
|
||||||
|
`p3_D_5` VARCHAR(50),
|
||||||
|
`p3_E_1` VARCHAR(50),
|
||||||
|
`p1` VARCHAR(50),
|
||||||
|
`p2` VARCHAR(50),
|
||||||
|
`p4` VARCHAR(50),
|
||||||
|
`p5` VARCHAR(50),
|
||||||
|
`p6` VARCHAR(50)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Relaciones corregidas
|
||||||
|
ALTER TABLE `Cuestionario`
|
||||||
|
ADD FOREIGN KEY (`idServicio`) REFERENCES `servicio` (`idServicio`);
|
||||||
|
|
||||||
|
ALTER TABLE `Cuestionario`
|
||||||
|
ADD FOREIGN KEY (`idCuestionarioAlumno`) REFERENCES `cuestionario_alumno_2` (`idCuestionarioAlumno2`);
|
||||||
|
|
||||||
|
ALTER TABLE `Cuestionario`
|
||||||
|
ADD FOREIGN KEY (`idCuestionarioPrograma`) REFERENCES `cuestionario_programa_2` (`idCuestionarioPrograma2`);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE `Cuestionario`
|
||||||
|
ADD FOREIGN KEY (`idCuestionarioAlumno1`) REFERENCES `cuestionario_alumno` (`idCuestionarioAlumno`);
|
||||||
|
|
||||||
|
ALTER TABLE `Cuestionario`
|
||||||
|
ADD FOREIGN KEY (`idCuestionarioPrograma1`) REFERENCES `cuestionario_programa` (`idCuestionarioPrograma`);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
require('./config');
|
require('./config');
|
||||||
const { Sequelize } = require('sequelize');
|
const { Sequelize } = require('sequelize');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const sequelize = new Sequelize(
|
const sequelize = new Sequelize(
|
||||||
process.env.DB,
|
process.env.DB,
|
||||||
process.env.USERDB,
|
process.env.USERDB,
|
||||||
@@ -16,4 +18,15 @@ const sequelize = new Sequelize(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
try {
|
||||||
|
|
||||||
|
await sequelize.authenticate();
|
||||||
|
console.log('Conexión exitosa con la Base de Datos');
|
||||||
|
} catch (error) {
|
||||||
|
console.error('No se pudo conectar a la BD:', error);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
module.exports = sequelize;
|
module.exports = sequelize;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
const helperPath = '../../helper';
|
const helperPath = '../../helper';
|
||||||
const drive = require(`${helperPath}/drive`);
|
// const drive = require(`${helperPath}/drive`);
|
||||||
const validar = require(`${helperPath}/validar`);
|
const validar = require(`${helperPath}/validar`);
|
||||||
const dbPath = '../../db/tablas';
|
const dbPath = '../../db/tablas';
|
||||||
const Carrera = require(`${dbPath}/Carrera`);
|
const Carrera = require(`${dbPath}/Carrera`);
|
||||||
@@ -63,14 +63,14 @@ const nuevo = async (body, file) => {
|
|||||||
where: { idUsuario },
|
where: { idUsuario },
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.then(async (res) => {
|
/* .then(async (res) => {
|
||||||
if (res) throw new Error('Este alumno ya tienen un Caso Especial.');
|
if (res) throw new Error('Este alumno ya tienen un Caso Especial.');
|
||||||
return drive.folder(numeroCuenta);
|
return drive.folder(numeroCuenta);
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
carpeta = res;
|
carpeta = res;
|
||||||
return drive.uploadFile(path, `archivos.zip`, 'application/zip', carpeta);
|
return drive.uploadFile(path, `archivos.zip`, 'application/zip', carpeta);
|
||||||
})
|
}) */
|
||||||
.then((res) =>
|
.then((res) =>
|
||||||
CasoEspecial.create({
|
CasoEspecial.create({
|
||||||
idUsuario,
|
idUsuario,
|
||||||
|
|||||||
@@ -0,0 +1,147 @@
|
|||||||
|
const { convertArrayToCSV } = require('convert-array-to-csv');
|
||||||
|
const { Op } = require('sequelize');
|
||||||
|
const helperPath = '../../helper';
|
||||||
|
const helper = require(`${helperPath}/helper`);
|
||||||
|
const { validarNumero } = require(`${helperPath}/validar`);
|
||||||
|
const dbPath = '../../db/tablas';
|
||||||
|
const CuestionarioAlumno2 = require(`${dbPath}/CuestionarioAlumno2`);
|
||||||
|
const Programa = require(`${dbPath}/Programa`);
|
||||||
|
const Servicio = require(`${dbPath}/Servicio`);
|
||||||
|
const Usuario = require(`${dbPath}/Usuario`);
|
||||||
|
const Carrera = require(`${dbPath}/Carrera`);
|
||||||
|
|
||||||
|
|
||||||
|
const get = async (body) => {
|
||||||
|
const year = validarNumero(body.year, 'año', true, 4);
|
||||||
|
const path = `server/uploads/${year}_cuestionario_alumno.csv`;
|
||||||
|
const data = [];
|
||||||
|
|
||||||
|
console.log(year);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
return Servicio.findAll({
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
model: CuestionarioAlumno2,
|
||||||
|
where: { idCuestionarioAlumno: { [Op.not]: null } },
|
||||||
|
},
|
||||||
|
{ model: Programa, where: { clavePrograma: { [Op.like]: `${year}%` } } },
|
||||||
|
{ model: Usuario },
|
||||||
|
{ model: Carrera },
|
||||||
|
],
|
||||||
|
order: [['createdAt']],
|
||||||
|
})
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* return CuestionarioAlumno2.findAll({
|
||||||
|
where: {
|
||||||
|
idCuestionarioAlumno2: {
|
||||||
|
[Op.not]: null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
// order: [['createdAt', 'ASC']], // Descomentar si se requiere ordenamiento
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
|
||||||
|
console.log("segunda parte",res);
|
||||||
|
|
||||||
|
for (let i = 0; i < res.length; i++)
|
||||||
|
data.push({ ...res})
|
||||||
|
|
||||||
|
|
||||||
|
data.push({
|
||||||
|
idServicio: res[i].idServicio,
|
||||||
|
clavePrograma: res[i].Programa.clavePrograma,
|
||||||
|
usuario: res[i].Usuario.usuario,
|
||||||
|
nombre: res[i].Usuario.nombre,
|
||||||
|
carrera: res[i].Carrera.carrera,
|
||||||
|
idCuestionarioAlumno: res[i].CuestionarioAlumno.idCuestionarioAlumno,
|
||||||
|
sexo: res[i].CuestionarioAlumno.sexo,
|
||||||
|
edad: res[i].CuestionarioAlumno.edad,
|
||||||
|
servicioMedico: res[i].CuestionarioAlumno.servicioMedico,
|
||||||
|
p1: res[i].CuestionarioAlumno.p1,
|
||||||
|
p2: res[i].CuestionarioAlumno.p2,
|
||||||
|
p3: res[i].CuestionarioAlumno.p3,
|
||||||
|
p4: res[i].CuestionarioAlumno.p4,
|
||||||
|
p5: res[i].CuestionarioAlumno.p5,
|
||||||
|
p6: res[i].CuestionarioAlumno.p6,
|
||||||
|
p7: res[i].CuestionarioAlumno.p7,
|
||||||
|
p8: res[i].CuestionarioAlumno.p8,
|
||||||
|
p9: res[i].CuestionarioAlumno.p9,
|
||||||
|
p10: res[i].CuestionarioAlumno.p10,
|
||||||
|
p11: res[i].CuestionarioAlumno.p11,
|
||||||
|
p12: res[i].CuestionarioAlumno.p12,
|
||||||
|
p13: res[i].CuestionarioAlumno.p13,
|
||||||
|
p14: res[i].CuestionarioAlumno.p14,
|
||||||
|
p15: res[i].CuestionarioAlumno.p15,
|
||||||
|
p16: res[i].CuestionarioAlumno.p16,
|
||||||
|
p17: res[i].CuestionarioAlumno.p17,
|
||||||
|
p18: res[i].CuestionarioAlumno.p18,
|
||||||
|
p19: res[i].CuestionarioAlumno.p19,
|
||||||
|
p20: res[i].CuestionarioAlumno.p20,
|
||||||
|
p21: res[i].CuestionarioAlumno.p21,
|
||||||
|
p22: res[i].CuestionarioAlumno.p22,
|
||||||
|
p23: res[i].CuestionarioAlumno.p23,
|
||||||
|
p24: res[i].CuestionarioAlumno.p24,
|
||||||
|
p25: res[i].CuestionarioAlumno.p25,
|
||||||
|
p26: res[i].CuestionarioAlumno.p26,
|
||||||
|
p27: res[i].CuestionarioAlumno.p27,
|
||||||
|
p28: res[i].CuestionarioAlumno.p28,
|
||||||
|
p29: res[i].CuestionarioAlumno.p29,
|
||||||
|
p30: res[i].CuestionarioAlumno.p30,
|
||||||
|
createdAt: res[i].CuestionarioAlumno.createdAt,
|
||||||
|
});
|
||||||
|
await helper.eliminarArchivo(path).catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
return helper.crearArchivo(path, convertArrayToCSV(data));
|
||||||
|
})
|
||||||
|
.then((res) => path);
|
||||||
|
}; */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return CuestionarioAlumno2.findAll({
|
||||||
|
where: {
|
||||||
|
idCuestionarioAlumno2: {
|
||||||
|
[Op.not]: null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
console.log("segunda parte", res);
|
||||||
|
|
||||||
|
for (let i = 0; i < res.length; i++) {
|
||||||
|
data.push(res[i].get({ plain: true }));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alternativa manual si necesitas campos específicos
|
||||||
|
/* for (let i = 0; i < res.length; i++) {
|
||||||
|
const row = res[i].get({ plain: true });
|
||||||
|
data.push({
|
||||||
|
idCuestionarioAlumno2: row.idCuestionarioAlumno2,
|
||||||
|
p1: row.p1,
|
||||||
|
p2: row.p2,
|
||||||
|
p3: row.p3,
|
||||||
|
p4: row.p4,
|
||||||
|
p5: row.p5,
|
||||||
|
// Agrega los demás campos según sea necesario
|
||||||
|
});
|
||||||
|
} */
|
||||||
|
|
||||||
|
await helper.eliminarArchivo(path).catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
return helper.crearArchivo(path, convertArrayToCSV(data));
|
||||||
|
})
|
||||||
|
.then((res) => path);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = get;
|
||||||
@@ -0,0 +1,246 @@
|
|||||||
|
const validar = require('../../helper/validar');
|
||||||
|
const dbPath = '../../db/tablas';
|
||||||
|
const CuestionarioAlumno = require(`${dbPath}/CuestionarioAlumno`);
|
||||||
|
const CuestionarioAlumno2 = require(`${dbPath}/CuestionarioAlumno2`);
|
||||||
|
|
||||||
|
const Cuestionario = require(`${dbPath}/Cuestionario`);
|
||||||
|
const Servicio = require(`${dbPath}/Servicio`);
|
||||||
|
|
||||||
|
const nuevo = async (body) => {
|
||||||
|
// console.log(body);
|
||||||
|
|
||||||
|
let idServicio = body.idServicio;
|
||||||
|
/*
|
||||||
|
const idServicio = validar.validarNumeroEntero(
|
||||||
|
body.idServicio,
|
||||||
|
'id servicio'
|
||||||
|
); */
|
||||||
|
|
||||||
|
|
||||||
|
body = validar.validarCuestionarioAlumno2(body);
|
||||||
|
|
||||||
|
|
||||||
|
// pasar preguntas de array a string
|
||||||
|
|
||||||
|
return Servicio.findOne({ where: { idServicio } })
|
||||||
|
.then(async (res) => {
|
||||||
|
if (!res) throw new Error('No existe este Servicio Social.');
|
||||||
|
/*
|
||||||
|
if (res.idCuestionarioAlumno)
|
||||||
|
throw new Error(
|
||||||
|
'Este Servicio Social ya cuenta con cuestionario de alumno'
|
||||||
|
);
|
||||||
|
*/
|
||||||
|
|
||||||
|
console.log('el servicio social si existe');
|
||||||
|
// console.log(res);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* existe el servicio social?
|
||||||
|
* tiene cuestionario alumno en la tabla cuestionario? select * from cuestionario where idServicio = 1
|
||||||
|
* si no existe, entonces se puede crear el cuestionario
|
||||||
|
* creamos el cuestionario y guardamos las respuestas
|
||||||
|
*/
|
||||||
|
|
||||||
|
const messageByStatus = {
|
||||||
|
1: 'Aun no se puede contestar el cuestionario este Servicio Social.',
|
||||||
|
2: 'Aun no se puede contestar el cuestionario este Servicio Social.',
|
||||||
|
3: 'Aun no se puede contestar el cuestionario este Servicio Social.',
|
||||||
|
5: 'Este Servicio Social ya paso la fase de contestar el cuestionario.',
|
||||||
|
6: 'Este Servicio Social ya paso la fase de contestar el cuestionario.',
|
||||||
|
7: 'Este Servicio Social se encuentra rechazado. No se puede avanzar hasta que se corrija lo necesario.',
|
||||||
|
8: 'Este Servicio Social se encuentra rechazado. No se puede avanzar hasta que se corrija lo necesario.',
|
||||||
|
9: 'Este Servicio Social se encuentra rechazado. No se puede avanzar hasta que se corrija lo necesario.',
|
||||||
|
10: 'Este Servicio Social fue cancelado.',
|
||||||
|
};
|
||||||
|
|
||||||
|
// if (res.idStatus === 4) return CuestionarioAlumno2.create({ ...body });
|
||||||
|
console.log('antes de create ques2');
|
||||||
|
|
||||||
|
// if (res.idStatus) return CuestionarioAlumno2.create({ ...body });
|
||||||
|
|
||||||
|
// si idStatus está en el objeto, arrojamos el mensaje
|
||||||
|
|
||||||
|
/* if (messageByStatus.hasOwnProperty(res.idStatus))
|
||||||
|
throw new Error(messageByStatus[res.idStatus]); */
|
||||||
|
|
||||||
|
// throw new Error('Id status no valido.'); // si no coincide con nada, error por defecto
|
||||||
|
|
||||||
|
// Cuestionario.findOne({});
|
||||||
|
|
||||||
|
let dataCuestionario = await Cuestionario.findOne({
|
||||||
|
where: { idServicio, dirigidoA: 'estudiantes' },
|
||||||
|
});
|
||||||
|
console.log('data cuestionario', dataCuestionario);
|
||||||
|
|
||||||
|
if (dataCuestionario) {
|
||||||
|
throw new Error('Ya existe un cuestionario para este servicio social');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let cuestionarioRegistro = await Cuestionario.create({
|
||||||
|
idServicio,
|
||||||
|
// idCuestionarioAlumno: respuestasRegistradas.idCuestionarioAlumno,
|
||||||
|
version: '2',
|
||||||
|
dirigidoA: 'estudiantes',
|
||||||
|
titulo: 'Cuestionario de Alumn v2',
|
||||||
|
desc: 'Cuestionario de Alumno v2',
|
||||||
|
createdAt: new Date(),
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
console.log("datos a registrar en la tabla cuestionarioAlumno2", { ...body, idCuestionario: cuestionarioRegistro.idCuestionario } );
|
||||||
|
|
||||||
|
let respuestasRegistradas = await CuestionarioAlumno2.create({ ...body, idCuestionario: cuestionarioRegistro.idCuestionario });
|
||||||
|
console.log('despues de registrar cuestionario', respuestasRegistradas);
|
||||||
|
|
||||||
|
|
||||||
|
console.log('cuestionario registrado', cuestionarioRegistro);
|
||||||
|
|
||||||
|
return cuestionarioRegistro;
|
||||||
|
})
|
||||||
|
|
||||||
|
.then((res) => ({
|
||||||
|
message: `Se guardaron tus respuestas correctamente. ${res}`,
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
|
||||||
|
const convertirSTR = () => {
|
||||||
|
for (let i = 0; i < body.p3.length; i++) {
|
||||||
|
p3 += body.p3[i];
|
||||||
|
if (i < body.p3.length - 1) p3 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p5.length; i++) {
|
||||||
|
p5 += body.p5[i];
|
||||||
|
if (i < body.p5.length - 1) p5 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p8.length; i++) {
|
||||||
|
p8 += body.p8[i];
|
||||||
|
if (i < body.p8.length - 1) p8 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p14.length; i++) {
|
||||||
|
p14 += body.p14[i];
|
||||||
|
if (i < body.p14.length - 1) p14 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p15.length; i++) {
|
||||||
|
p15 += body.p15[i];
|
||||||
|
if (i < body.p15.length - 1) p15 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p17.length; i++) {
|
||||||
|
p17 += body.p17[i];
|
||||||
|
if (i < body.p17.length - 1) p17 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p21.length; i++) {
|
||||||
|
p21 += body.p21[i];
|
||||||
|
if (i < body.p21.length - 1) p21 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p22.length; i++) {
|
||||||
|
p22 += body.p22[i];
|
||||||
|
if (i < body.p22.length - 1) p22 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p23.length; i++) {
|
||||||
|
p23 += body.p23[i];
|
||||||
|
if (i < body.p23.length - 1) p23 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p24.length; i++) {
|
||||||
|
p24 += body.p24[i];
|
||||||
|
if (i < body.p24.length - 1) p24 += ',';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = nuevo;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
<!-- respuestas de cuestionario formulario2
|
||||||
|
todas las preguntas se guardan correctamente
|
||||||
|
{
|
||||||
|
"p3_A_1": "Deficiente",
|
||||||
|
"p3_A_2": "Deficiente",
|
||||||
|
"p3_A_3": "Deficiente",
|
||||||
|
"p3_A_4": "Deficiente",
|
||||||
|
"p3_B_1": "Básico",
|
||||||
|
"p3_B_2": "Básico",
|
||||||
|
"p3_B_3": "Básico",
|
||||||
|
"p3_B_4": "Básico",
|
||||||
|
"p3_C_1": "Intermedio",
|
||||||
|
"p3_C_2": "Intermedio",
|
||||||
|
"p3_C_3": "Intermedio",
|
||||||
|
"p3_C_4": "Intermedio",
|
||||||
|
"p3_C_5": "Intermedio",
|
||||||
|
"p3_D_1": "Destacado",
|
||||||
|
"p3_D_2": "Destacado",
|
||||||
|
"p3_D_3": "Destacado",
|
||||||
|
"p3_D_4": "Destacado",
|
||||||
|
"p3_D_5": "Destacado",
|
||||||
|
"p3_E_1": "Deficiente",
|
||||||
|
"p1": "respuesta1",
|
||||||
|
"p2": "Excelente",
|
||||||
|
"p4": "respuesta4",
|
||||||
|
"p5": "Sí",
|
||||||
|
"p6": "respuesta 6"
|
||||||
|
}
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- respuestas de cuestionario formulario alumno
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"p1": [
|
||||||
|
"Dependencia de la UNAM",
|
||||||
|
"Asesoría académica",
|
||||||
|
"Oportunidad de desarrollo de tesis"
|
||||||
|
],
|
||||||
|
"p12_A_1": "Deficiente",
|
||||||
|
"p12_A_2": "Deficiente",
|
||||||
|
"p12_A_3": "Deficiente",
|
||||||
|
"p12_A_4": "Deficiente",
|
||||||
|
"p12_B_1": "Básico",
|
||||||
|
"p12_B_2": "Básico",
|
||||||
|
"p12_B_3": "Básico",
|
||||||
|
"p12_B_4": "Básico",
|
||||||
|
"p12_C_1": "Intermedio",
|
||||||
|
"p12_C_2": "Intermedio",
|
||||||
|
"p12_C_3": "Intermedio",
|
||||||
|
"p12_C_4": "Intermedio",
|
||||||
|
"p10_1": "si",
|
||||||
|
"p10_2": "si",
|
||||||
|
"p10_3": "si",
|
||||||
|
"p11_1": "Nunca",
|
||||||
|
"p11_2": "Rara vez",
|
||||||
|
"p11_3": "Algunas veces",
|
||||||
|
"p11_4": "Siempre",
|
||||||
|
"p17_1": "si",
|
||||||
|
"p17_2": "no",
|
||||||
|
"p17_3": "si",
|
||||||
|
"p3_1": "si",
|
||||||
|
"p3_2": "si",
|
||||||
|
"p3_3": "si",
|
||||||
|
"p3_4": "si",
|
||||||
|
"p12_D_1": "Destacado",
|
||||||
|
"p12_D_2": "Destacado",
|
||||||
|
"p12_D_3": "Destacado",
|
||||||
|
"p12_D_4": "Destacado",
|
||||||
|
"p12_D_5": "Destacado",
|
||||||
|
"p2": "Deficiente",
|
||||||
|
"p4": "No",
|
||||||
|
"p5": "respuesta5",
|
||||||
|
"p6": "Sí",
|
||||||
|
"p7": "Sí",
|
||||||
|
"p8": "respuesta8",
|
||||||
|
"p9": "Sí",
|
||||||
|
"p13": "Responsable directo del programa",
|
||||||
|
"p14": "Se te otorgó de acuerdo a lo establecido",
|
||||||
|
"p15": "Sí",
|
||||||
|
"p16": "respuesta 16",
|
||||||
|
"p18": "respuesta18"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
*/
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const { convertArrayToCSV } = require('convert-array-to-csv');
|
||||||
|
const { Op } = require('sequelize');
|
||||||
|
const helperPath = '../../helper';
|
||||||
|
const helper = require(`${helperPath}/helper`);
|
||||||
|
const { validarNumero } = require(`${helperPath}/validar`);
|
||||||
|
const dbPath = '../../db/tablas';
|
||||||
|
const Carrera = require(`${dbPath}/Carrera`);
|
||||||
|
const CuestionarioPrograma2 = require(`${dbPath}/CuestionarioPrograma`);
|
||||||
|
const Servicio = require(`${dbPath}/Servicio`);
|
||||||
|
const Programa = require(`${dbPath}/Programa`);
|
||||||
|
const Usuario = require(`${dbPath}/Usuario`);
|
||||||
|
|
||||||
|
const get = async (body) => {
|
||||||
|
const year = validarNumero(body.year, 'año', true, 4);
|
||||||
|
const path = `server/uploads/${year}_cuestionario_programa.csv`;
|
||||||
|
const data = [];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return CuestionarioPrograma2.findAll({
|
||||||
|
where: {
|
||||||
|
idCuestionarioPrograma2: {
|
||||||
|
[Op.not]: null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
console.log("segunda parte", res);
|
||||||
|
|
||||||
|
for (let i = 0; i < res.length; i++) {
|
||||||
|
data.push(res[i].get({ plain: true }));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alternativa manual si necesitas campos específicos
|
||||||
|
/* for (let i = 0; i < res.length; i++) {
|
||||||
|
const row = res[i].get({ plain: true });
|
||||||
|
data.push({
|
||||||
|
idCuestionarioPrograma2: row.idCuestionarioPrograma2,
|
||||||
|
p1: row.p1,
|
||||||
|
p2: row.p2,
|
||||||
|
p3: row.p3,
|
||||||
|
p4: row.p4,
|
||||||
|
p5: row.p5,
|
||||||
|
// Agrega los demás campos según sea necesario
|
||||||
|
});
|
||||||
|
} */
|
||||||
|
|
||||||
|
await helper.eliminarArchivo(path).catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
return helper.crearArchivo(path, convertArrayToCSV(data));
|
||||||
|
})
|
||||||
|
.then((res) => path);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* return Servicio.findAll({
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
model: CuestionarioPrograma,
|
||||||
|
where: { idCuestionarioPrograma: { [Op.not]: null } },
|
||||||
|
},
|
||||||
|
{ model: Programa, where: { clavePrograma: { [Op.like]: `${year}-%` } } },
|
||||||
|
{ model: Usuario },
|
||||||
|
{ model: Carrera },
|
||||||
|
],
|
||||||
|
order: [['createdAt']],
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
for (let i = 0; i < res.length; i++)
|
||||||
|
data.push({
|
||||||
|
idServicio: res[i].idServicio,
|
||||||
|
clavePrograma: res[i].Programa.clavePrograma,
|
||||||
|
usuario: res[i].Usuario.usuario,
|
||||||
|
nombre: res[i].Usuario.nombre,
|
||||||
|
carrera: res[i].Carrera.carrera,
|
||||||
|
idCuestionarioPrograma:
|
||||||
|
res[i].CuestionarioPrograma.idCuestionarioPrograma,
|
||||||
|
actividad1: res[i].CuestionarioPrograma.actividad1,
|
||||||
|
actividad2: res[i].CuestionarioPrograma.actividad2,
|
||||||
|
actividad3: res[i].CuestionarioPrograma.actividad3,
|
||||||
|
actividad4: res[i].CuestionarioPrograma.actividad4,
|
||||||
|
actividad5: res[i].CuestionarioPrograma.actividad5,
|
||||||
|
retroalimentacion: res[i].CuestionarioPrograma.retroalimentacion,
|
||||||
|
p6: res[i].CuestionarioPrograma.p6,
|
||||||
|
p7: res[i].CuestionarioPrograma.p7,
|
||||||
|
createdAt: res[i].CuestionarioPrograma.createdAt,
|
||||||
|
});
|
||||||
|
await helper.eliminarArchivo(path).catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
return helper.crearArchivo(path, convertArrayToCSV(data));
|
||||||
|
})
|
||||||
|
.then((res) => path);
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = get;
|
||||||
@@ -0,0 +1,249 @@
|
|||||||
|
const validar = require('../../helper/validar');
|
||||||
|
const dbPath = '../../db/tablas';
|
||||||
|
const CuestionarioAlumno = require(`${dbPath}/CuestionarioAlumno`);
|
||||||
|
const CuestionarioPrograma2 = require(`${dbPath}/CuestionarioPrograma2`);
|
||||||
|
|
||||||
|
const Cuestionario = require(`${dbPath}/Cuestionario`);
|
||||||
|
const Servicio = require(`${dbPath}/Servicio`);
|
||||||
|
|
||||||
|
const nuevo = async (body) => {
|
||||||
|
// console.log(body);
|
||||||
|
|
||||||
|
let idServicio = body.idServicio;
|
||||||
|
/*
|
||||||
|
const idServicio = validar.validarNumeroEntero(
|
||||||
|
body.idServicio,
|
||||||
|
'id servicio'
|
||||||
|
); */
|
||||||
|
|
||||||
|
// pasar preguntas de array a string
|
||||||
|
|
||||||
|
return Servicio.findOne({ where: { idServicio } })
|
||||||
|
.then(async (res) => {
|
||||||
|
if (!res) throw new Error('No existe este Servicio Social.');
|
||||||
|
/* if (res.idCuestionarioAlumno)
|
||||||
|
throw new Error(
|
||||||
|
'Este Servicio Social ya cuenta con cuestionario de programa'
|
||||||
|
); */
|
||||||
|
|
||||||
|
console.log('el servicio social si existe');
|
||||||
|
// console.log(res);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* existe el servicio social?
|
||||||
|
* tiene cuestionario alumno en la tabla cuestionario? select * from cuestionario where idServicio = 1
|
||||||
|
* si no existe, entonces se puede crear el cuestionario
|
||||||
|
* creamos el cuestionario y guardamos las respuestas
|
||||||
|
*/
|
||||||
|
|
||||||
|
const messageByStatus = {
|
||||||
|
1: 'Aun no se puede contestar el cuestionario este Servicio Social.',
|
||||||
|
2: 'Aun no se puede contestar el cuestionario este Servicio Social.',
|
||||||
|
3: 'Aun no se puede contestar el cuestionario este Servicio Social.',
|
||||||
|
5: 'Este Servicio Social ya paso la fase de contestar el cuestionario.',
|
||||||
|
6: 'Este Servicio Social ya paso la fase de contestar el cuestionario.',
|
||||||
|
7: 'Este Servicio Social se encuentra rechazado. No se puede avanzar hasta que se corrija lo necesario.',
|
||||||
|
8: 'Este Servicio Social se encuentra rechazado. No se puede avanzar hasta que se corrija lo necesario.',
|
||||||
|
9: 'Este Servicio Social se encuentra rechazado. No se puede avanzar hasta que se corrija lo necesario.',
|
||||||
|
10: 'Este Servicio Social fue cancelado.',
|
||||||
|
};
|
||||||
|
|
||||||
|
// if (res.idStatus === 4) return CuestionarioPrograma2.create({ ...body });
|
||||||
|
console.log('antes de create ques2');
|
||||||
|
|
||||||
|
// if (res.idStatus) return CuestionarioPrograma2.create({ ...body });
|
||||||
|
// si idStatus está en el objeto, arrojamos el mensaje
|
||||||
|
/* if (messageByStatus.hasOwnProperty(res.idStatus))
|
||||||
|
throw new Error(messageByStatus[res.idStatus]); */
|
||||||
|
// throw new Error('Id status no valido.'); // si no coincide con nada, error por defecto
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let dataCuestionario = await Cuestionario.findOne({
|
||||||
|
where: { idServicio, dirigidoA: 'programas' },
|
||||||
|
});
|
||||||
|
console.log('data cuestionario', dataCuestionario);
|
||||||
|
|
||||||
|
if (dataCuestionario) {
|
||||||
|
throw new Error('Ya existe un cuestionario para este servicio social');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let cuestionarioRegistro = await Cuestionario.create({
|
||||||
|
idServicio,
|
||||||
|
idCuestionarioPrograma: respuestasRegistradas.idCuestionarioPrograma,
|
||||||
|
version: '2',
|
||||||
|
dirigidoA: 'programas',
|
||||||
|
titulo: 'Cuestionario de programa v2',
|
||||||
|
desc: 'Cuestionario de programa v2',
|
||||||
|
createdAt: new Date(),
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('cuestionario registrado', cuestionarioRegistro);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let respuestasRegistradas = await CuestionarioPrograma2.create({
|
||||||
|
...body,
|
||||||
|
idCuestionario: cuestionarioRegistro.idCuestionario
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('despues de registrar cuestionario', respuestasRegistradas);
|
||||||
|
|
||||||
|
// si el cuestionario ya existe solo hay que actualizar el id de cuestionarioprograma o alumno
|
||||||
|
|
||||||
|
|
||||||
|
return cuestionarioRegistro;
|
||||||
|
})
|
||||||
|
|
||||||
|
.then((res) => ({
|
||||||
|
message: `Se guardaron tus respuestas correctamente. ${res}`,
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
|
||||||
|
const convertirSTR = () => {
|
||||||
|
for (let i = 0; i < body.p3.length; i++) {
|
||||||
|
p3 += body.p3[i];
|
||||||
|
if (i < body.p3.length - 1) p3 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p5.length; i++) {
|
||||||
|
p5 += body.p5[i];
|
||||||
|
if (i < body.p5.length - 1) p5 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p8.length; i++) {
|
||||||
|
p8 += body.p8[i];
|
||||||
|
if (i < body.p8.length - 1) p8 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p14.length; i++) {
|
||||||
|
p14 += body.p14[i];
|
||||||
|
if (i < body.p14.length - 1) p14 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p15.length; i++) {
|
||||||
|
p15 += body.p15[i];
|
||||||
|
if (i < body.p15.length - 1) p15 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p17.length; i++) {
|
||||||
|
p17 += body.p17[i];
|
||||||
|
if (i < body.p17.length - 1) p17 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p21.length; i++) {
|
||||||
|
p21 += body.p21[i];
|
||||||
|
if (i < body.p21.length - 1) p21 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p22.length; i++) {
|
||||||
|
p22 += body.p22[i];
|
||||||
|
if (i < body.p22.length - 1) p22 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p23.length; i++) {
|
||||||
|
p23 += body.p23[i];
|
||||||
|
if (i < body.p23.length - 1) p23 += ',';
|
||||||
|
}
|
||||||
|
for (let i = 0; i < body.p24.length; i++) {
|
||||||
|
p24 += body.p24[i];
|
||||||
|
if (i < body.p24.length - 1) p24 += ',';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = nuevo;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
<!-- respuestas de cuestionario formulario2
|
||||||
|
todas las preguntas se guardan correctamente
|
||||||
|
{
|
||||||
|
"p3_A_1": "Deficiente",
|
||||||
|
"p3_A_2": "Deficiente",
|
||||||
|
"p3_A_3": "Deficiente",
|
||||||
|
"p3_A_4": "Deficiente",
|
||||||
|
"p3_B_1": "Básico",
|
||||||
|
"p3_B_2": "Básico",
|
||||||
|
"p3_B_3": "Básico",
|
||||||
|
"p3_B_4": "Básico",
|
||||||
|
"p3_C_1": "Intermedio",
|
||||||
|
"p3_C_2": "Intermedio",
|
||||||
|
"p3_C_3": "Intermedio",
|
||||||
|
"p3_C_4": "Intermedio",
|
||||||
|
"p3_C_5": "Intermedio",
|
||||||
|
"p3_D_1": "Destacado",
|
||||||
|
"p3_D_2": "Destacado",
|
||||||
|
"p3_D_3": "Destacado",
|
||||||
|
"p3_D_4": "Destacado",
|
||||||
|
"p3_D_5": "Destacado",
|
||||||
|
"p3_E_1": "Deficiente",
|
||||||
|
"p1": "respuesta1",
|
||||||
|
"p2": "Excelente",
|
||||||
|
"p4": "respuesta4",
|
||||||
|
"p5": "Sí",
|
||||||
|
"p6": "respuesta 6"
|
||||||
|
}
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- respuestas de cuestionario formulario alumno
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"p1": [
|
||||||
|
"Dependencia de la UNAM",
|
||||||
|
"Asesoría académica",
|
||||||
|
"Oportunidad de desarrollo de tesis"
|
||||||
|
],
|
||||||
|
"p12_A_1": "Deficiente",
|
||||||
|
"p12_A_2": "Deficiente",
|
||||||
|
"p12_A_3": "Deficiente",
|
||||||
|
"p12_A_4": "Deficiente",
|
||||||
|
"p12_B_1": "Básico",
|
||||||
|
"p12_B_2": "Básico",
|
||||||
|
"p12_B_3": "Básico",
|
||||||
|
"p12_B_4": "Básico",
|
||||||
|
"p12_C_1": "Intermedio",
|
||||||
|
"p12_C_2": "Intermedio",
|
||||||
|
"p12_C_3": "Intermedio",
|
||||||
|
"p12_C_4": "Intermedio",
|
||||||
|
"p10_1": "si",
|
||||||
|
"p10_2": "si",
|
||||||
|
"p10_3": "si",
|
||||||
|
"p11_1": "Nunca",
|
||||||
|
"p11_2": "Rara vez",
|
||||||
|
"p11_3": "Algunas veces",
|
||||||
|
"p11_4": "Siempre",
|
||||||
|
"p17_1": "si",
|
||||||
|
"p17_2": "no",
|
||||||
|
"p17_3": "si",
|
||||||
|
"p3_1": "si",
|
||||||
|
"p3_2": "si",
|
||||||
|
"p3_3": "si",
|
||||||
|
"p3_4": "si",
|
||||||
|
"p12_D_1": "Destacado",
|
||||||
|
"p12_D_2": "Destacado",
|
||||||
|
"p12_D_3": "Destacado",
|
||||||
|
"p12_D_4": "Destacado",
|
||||||
|
"p12_D_5": "Destacado",
|
||||||
|
"p2": "Deficiente",
|
||||||
|
"p4": "No",
|
||||||
|
"p5": "respuesta5",
|
||||||
|
"p6": "Sí",
|
||||||
|
"p7": "Sí",
|
||||||
|
"p8": "respuesta8",
|
||||||
|
"p9": "Sí",
|
||||||
|
"p13": "Responsable directo del programa",
|
||||||
|
"p14": "Se te otorgó de acuerdo a lo establecido",
|
||||||
|
"p15": "Sí",
|
||||||
|
"p16": "respuesta 16",
|
||||||
|
"p18": "respuesta18"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
*/
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
const helperPath = '../../helper';
|
const helperPath = '../../helper';
|
||||||
const drive = require(`${helperPath}/drive`);
|
//const drive = require(`${helperPath}/drive`);
|
||||||
const validar = require(`${helperPath}/validar`);
|
const validar = require(`${helperPath}/validar`);
|
||||||
const Servicio = require('../../db/tablas/Servicio');
|
const Servicio = require('../../db/tablas/Servicio');
|
||||||
|
|
||||||
@@ -23,13 +23,13 @@ const cartaTermino = async (body, file) => {
|
|||||||
if (res.cartaAceptacion)
|
if (res.cartaAceptacion)
|
||||||
throw new Error('Ya se subio la Carta de Aceptación.');
|
throw new Error('Ya se subio la Carta de Aceptación.');
|
||||||
switch (res.idStatus) {
|
switch (res.idStatus) {
|
||||||
case 7:
|
/* case 7:
|
||||||
return drive.uploadFile(
|
return drive.uploadFile(
|
||||||
path,
|
path,
|
||||||
`Carta_Aceptacion.pdf`,
|
`Carta_Aceptacion.pdf`,
|
||||||
'application/pdf',
|
'application/pdf',
|
||||||
res.carpeta
|
res.carpeta
|
||||||
);
|
); */
|
||||||
case 1:
|
case 1:
|
||||||
throw new Error(
|
throw new Error(
|
||||||
'Esta linea de la API solo puede ser usada cuando es estatus del Servicio Social sea 7.'
|
'Esta linea de la API solo puede ser usada cuando es estatus del Servicio Social sea 7.'
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
const helperPath = '../../helper';
|
const helperPath = '../../helper';
|
||||||
const drive = require(`${helperPath}/drive`);
|
//const drive = require(`${helperPath}/drive`);
|
||||||
const validar = require(`${helperPath}/validar`);
|
const validar = require(`${helperPath}/validar`);
|
||||||
const Servicio = require('../../db/tablas/Servicio');
|
const Servicio = require('../../db/tablas/Servicio');
|
||||||
|
|
||||||
@@ -23,13 +23,13 @@ const cartaTermino = async (body, file) => {
|
|||||||
if (res.cartaTermino) throw new Error('Ya se subio la Carta de Termino.');
|
if (res.cartaTermino) throw new Error('Ya se subio la Carta de Termino.');
|
||||||
switch (res.idStatus) {
|
switch (res.idStatus) {
|
||||||
case 4:
|
case 4:
|
||||||
case 8:
|
/* case 8:
|
||||||
return drive.uploadFile(
|
return drive.uploadFile(
|
||||||
path,
|
path,
|
||||||
`Carta_Termino.pdf`,
|
`Carta_Termino.pdf`,
|
||||||
'application/pdf',
|
'application/pdf',
|
||||||
res.carpeta
|
res.carpeta
|
||||||
);
|
); */
|
||||||
case 1:
|
case 1:
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
const helperPath = '../../helper';
|
const helperPath = '../../helper';
|
||||||
const drive = require(`${helperPath}/drive`);
|
//const drive = require(`${helperPath}/drive`);
|
||||||
const validar = require(`${helperPath}/validar`);
|
const validar = require(`${helperPath}/validar`);
|
||||||
const Servicio = require('../../db/tablas/Servicio');
|
const Servicio = require('../../db/tablas/Servicio');
|
||||||
|
|
||||||
@@ -23,13 +23,13 @@ const informeGlobal = async (body, file) => {
|
|||||||
if (res.informeGlobal) throw new Error('Ya se subio el Informe Global.');
|
if (res.informeGlobal) throw new Error('Ya se subio el Informe Global.');
|
||||||
switch (res.idStatus) {
|
switch (res.idStatus) {
|
||||||
case 4:
|
case 4:
|
||||||
case 9:
|
/* case 9:
|
||||||
return drive.uploadFile(
|
return drive.uploadFile(
|
||||||
path,
|
path,
|
||||||
`Informe_Global.pdf`,
|
`Informe_Global.pdf`,
|
||||||
'application/pdf',
|
'application/pdf',
|
||||||
res.carpeta
|
res.carpeta
|
||||||
);
|
); */
|
||||||
case 1:
|
case 1:
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
const { Op } = require('sequelize');
|
const { Op } = require('sequelize');
|
||||||
const helperPath = '../../helper';
|
const helperPath = '../../helper';
|
||||||
const drive = require(`${helperPath}/drive`);
|
//const drive = require(`${helperPath}/drive`);
|
||||||
const validar = require(`${helperPath}/validar`);
|
const validar = require(`${helperPath}/validar`);
|
||||||
const dbPath = '../../db/tablas';
|
const dbPath = '../../db/tablas';
|
||||||
const Carrera = require(`${dbPath}/Carrera`);
|
const Carrera = require(`${dbPath}/Carrera`);
|
||||||
@@ -79,7 +79,7 @@ const nuevo = async (body, file) => {
|
|||||||
.then((servicio) => {
|
.then((servicio) => {
|
||||||
let carpeta = '';
|
let carpeta = '';
|
||||||
|
|
||||||
drive
|
/* drive
|
||||||
.mkDir(numeroCuenta)
|
.mkDir(numeroCuenta)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
carpeta = res;
|
carpeta = res;
|
||||||
@@ -95,7 +95,7 @@ const nuevo = async (body, file) => {
|
|||||||
{ carpeta, cartaAceptacion: res },
|
{ carpeta, cartaAceptacion: res },
|
||||||
{ where: { idServicio: servicio.idServicio } }
|
{ where: { idServicio: servicio.idServicio } }
|
||||||
)
|
)
|
||||||
);
|
); */
|
||||||
return { message: `Se Pre-Registro correctamente a este alumno.` };
|
return { message: `Se Pre-Registro correctamente a este alumno.` };
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
const helperPath = '../../helper';
|
const helperPath = '../../helper';
|
||||||
const drive = require(`${helperPath}/drive`);
|
//const drive = require(`${helperPath}/drive`);
|
||||||
const validar = require(`${helperPath}/validar`);
|
const validar = require(`${helperPath}/validar`);
|
||||||
const Servicio = require('../../db/tablas/Servicio');
|
const Servicio = require('../../db/tablas/Servicio');
|
||||||
|
|
||||||
@@ -13,6 +13,8 @@ const update = async (body, files) => {
|
|||||||
return Servicio.findOne({ where: { idServicio } })
|
return Servicio.findOne({ where: { idServicio } })
|
||||||
.then(async (res) => {
|
.then(async (res) => {
|
||||||
if (!res) throw new Error('Este Servicio Social no existe en la db.');
|
if (!res) throw new Error('Este Servicio Social no existe en la db.');
|
||||||
|
|
||||||
|
/*
|
||||||
try {
|
try {
|
||||||
if (files['cartaAceptacion'][0].filename)
|
if (files['cartaAceptacion'][0].filename)
|
||||||
dataUpdate.cartaAceptacion = await drive.uploadFile(
|
dataUpdate.cartaAceptacion = await drive.uploadFile(
|
||||||
@@ -40,6 +42,9 @@ const update = async (body, files) => {
|
|||||||
res.carpeta
|
res.carpeta
|
||||||
);
|
);
|
||||||
} catch (err) {}
|
} catch (err) {}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
if (body.correo) dataUpdate.correo = validar.validarCorreo(body.correo);
|
if (body.correo) dataUpdate.correo = validar.validarCorreo(body.correo);
|
||||||
if (body.fechaInicio)
|
if (body.fechaInicio)
|
||||||
dataUpdate.fechaInicio = validar.validarFecha(
|
dataUpdate.fechaInicio = validar.validarFecha(
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ const Status = require('./tablas/Status');
|
|||||||
const TipoUsuario = require('./tablas/TipoUsuario');
|
const TipoUsuario = require('./tablas/TipoUsuario');
|
||||||
const Usuario = require('./tablas/Usuario');
|
const Usuario = require('./tablas/Usuario');
|
||||||
|
|
||||||
|
|
||||||
|
const CuestionarioAlumno2 = require('./tablas/CuestionarioAlumno');
|
||||||
|
const CuestionarioPrograma2 = require('./tablas/CuestionarioPrograma');
|
||||||
|
|
||||||
|
|
||||||
const drop = async () => {
|
const drop = async () => {
|
||||||
console.log('\nPaso 1) Desinstalando la db.'.bold.blue);
|
console.log('\nPaso 1) Desinstalando la db.'.bold.blue);
|
||||||
|
|
||||||
@@ -33,6 +38,20 @@ const drop = async () => {
|
|||||||
'La tabla CuestionarioAlumno se desinstalo correctamente.'.magenta
|
'La tabla CuestionarioAlumno se desinstalo correctamente.'.magenta
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
await CuestionarioPrograma2.drop();
|
||||||
|
console.log(
|
||||||
|
'La tabla CuestionarioPrograma se desinstalo correctamente.'.magenta
|
||||||
|
);
|
||||||
|
|
||||||
|
await CuestionarioAlumno2.drop();
|
||||||
|
console.log(
|
||||||
|
'La tabla CuestionarioAlumno se desinstalo correctamente.'.magenta
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
await Programa.drop();
|
await Programa.drop();
|
||||||
console.log('La tabla Programa se desinstalo correctamente.'.magenta);
|
console.log('La tabla Programa se desinstalo correctamente.'.magenta);
|
||||||
|
|
||||||
@@ -69,6 +88,21 @@ const sync = async () => {
|
|||||||
'La tabla CuestionarioPrograma se instalo correctamente.'.magenta
|
'La tabla CuestionarioPrograma se instalo correctamente.'.magenta
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
await CuestionarioAlumno2.sync();
|
||||||
|
console.log('La tabla CuestionarioAlumno se instalo correctamente.'.magenta);
|
||||||
|
|
||||||
|
await CuestionarioPrograma2.sync();
|
||||||
|
console.log(
|
||||||
|
'La tabla CuestionarioPrograma se instalo correctamente.'.magenta
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
await Carrera.sync();
|
await Carrera.sync();
|
||||||
console.log('La tabla Carrera se instalo correctamente.'.magenta);
|
console.log('La tabla Carrera se instalo correctamente.'.magenta);
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,123 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
const { DataTypes, Model } = require('sequelize');
|
||||||
|
const sequelize = require('../../config/sequelize.conf');
|
||||||
|
const Usuario = require('./Usuario');
|
||||||
|
const Carrera = require('./Carrera');
|
||||||
|
const Programa = require('./Programa');
|
||||||
|
const Servicio = require('./Servicio');
|
||||||
|
const CuestionarioAlumno2 = require('./CuestionarioAlumno2');
|
||||||
|
const CuestionarioPrograma2 = require('./CuestionarioPrograma2');
|
||||||
|
|
||||||
|
class Cuestionario extends Model {}
|
||||||
|
Cuestionario.init(
|
||||||
|
{
|
||||||
|
idCuestionario: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
primaryKey: true,
|
||||||
|
autoIncrement: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
idServicio: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
allowNull: false,
|
||||||
|
references: {
|
||||||
|
model: Servicio,
|
||||||
|
key: 'idServicio',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
version: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: false,
|
||||||
|
},
|
||||||
|
titulo: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: false,
|
||||||
|
},
|
||||||
|
desc: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: false,
|
||||||
|
},
|
||||||
|
dirigidoA: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: false,
|
||||||
|
},
|
||||||
|
createdAt: {
|
||||||
|
type: DataTypes.DATE,
|
||||||
|
allowNull: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sequelize,
|
||||||
|
modelName: 'Cuestionario',
|
||||||
|
tableName: 'Cuestionario',
|
||||||
|
timestamps: false,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Cuestionario.belongsTo(Servicio, { foreignKey: 'idServicio' });
|
||||||
|
Servicio.hasMany(Cuestionario, { foreignKey: 'idServicio' });
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Cuestionario.belongsTo(CuestionarioAlumno2, { foreignKey: 'idCuestionarioAlumno2' });
|
||||||
|
CuestionarioAlumno2.hasOne(Cuestionario, { foreignKey: 'idCuestionarioAlumno2' });
|
||||||
|
|
||||||
|
Cuestionario.belongsTo(CuestionarioPrograma2, { foreignKey: 'idCuestionarioPrograma2' });
|
||||||
|
CuestionarioPrograma2.hasOne(Cuestionario, { foreignKey: 'idCuestionarioPrograma2' });
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = Cuestionario;
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const { DataTypes, Model } = require('sequelize');
|
||||||
|
const sequelize = require('../../config/sequelize.conf');
|
||||||
|
const Servicio = require('./Servicio');
|
||||||
|
|
||||||
|
class Cuestionario extends Model {}
|
||||||
|
|
||||||
|
Cuestionario.init(
|
||||||
|
{
|
||||||
|
idCuestionario: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
primaryKey: true,
|
||||||
|
autoIncrement: true,
|
||||||
|
},
|
||||||
|
idServicio: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
allowNull: false,
|
||||||
|
references: {
|
||||||
|
model: Servicio,
|
||||||
|
key: 'idServicio',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
version: DataTypes.STRING(50),
|
||||||
|
titulo: DataTypes.STRING(50),
|
||||||
|
desc: DataTypes.STRING(50),
|
||||||
|
dirigidoA: DataTypes.STRING(50),
|
||||||
|
createdAt: DataTypes.DATE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sequelize,
|
||||||
|
modelName: 'Cuestionario',
|
||||||
|
tableName: 'Cuestionario',
|
||||||
|
timestamps: false,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
Cuestionario.belongsTo(Servicio, { foreignKey: 'idServicio' });
|
||||||
|
Servicio.hasMany(Cuestionario, { foreignKey: 'idServicio' });
|
||||||
|
|
||||||
|
module.exports = Cuestionario;
|
||||||
@@ -0,0 +1,483 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
const { DataTypes, Model } = require('sequelize');
|
||||||
|
const sequelize = require('../../config/sequelize.conf');
|
||||||
|
|
||||||
|
const Cuestionario = require('./Cuestionario');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class CuestionarioAlumno2 extends Model {}
|
||||||
|
|
||||||
|
CuestionarioAlumno2.init(
|
||||||
|
{
|
||||||
|
idCuestionarioAlumno2: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
primaryKey: true,
|
||||||
|
allowNull: false,
|
||||||
|
unique: true,
|
||||||
|
autoIncrement: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
idCuestionario: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
p1: {
|
||||||
|
type: DataTypes.STRING(100),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p2: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p4: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p5: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p6: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p7: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p8: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p9: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p3_*: se definen como string (el JSON trae si/no)
|
||||||
|
p3_1: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_2: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_3: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_4: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p10_* y p11_*
|
||||||
|
p10_1: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p10_2: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p10_3: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p11_1: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p11_2: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p11_3: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p11_4: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p12_A_*, p12_B_*, p12_C_*, p12_D_*
|
||||||
|
// Ajusta el tamaño de la cadena según requieras
|
||||||
|
p12_A_1: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_A_2: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_A_3: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_A_4: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_B_1: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_B_2: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_B_3: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_B_4: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_C_1: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_C_2: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_C_3: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_C_4: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_D_1: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_D_2: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_D_3: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_D_4: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_D_5: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p13, p14, p15, p16...
|
||||||
|
p13: {
|
||||||
|
type: DataTypes.STRING(100),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p14: {
|
||||||
|
type: DataTypes.STRING(100),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p15: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p16: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p17_*
|
||||||
|
p17_1: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p17_2: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p17_3: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p18
|
||||||
|
p18: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sequelize,
|
||||||
|
modelName: 'CuestionarioAlumno2',
|
||||||
|
tableName: 'cuestionario_alumno_2',
|
||||||
|
timestamps: true,
|
||||||
|
createdAt: true,
|
||||||
|
updatedAt: false, // Ajusta según tus necesidades
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CuestionarioAlumno2.belongsTo(Cuestionario, { foreignKey: 'idCuestionario' });
|
||||||
|
Cuestionario.hasMany(CuestionarioAlumno2, { foreignKey: 'idCuestionario' });
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = CuestionarioAlumno2;
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
const { DataTypes, Model } = require('sequelize');
|
||||||
|
const sequelize = require('../../config/sequelize.conf');
|
||||||
|
|
||||||
|
class CuestionarioAlumno2 extends Model {}
|
||||||
|
|
||||||
|
CuestionarioAlumno2.init(
|
||||||
|
{
|
||||||
|
idCuestionarioAlumno2: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
primaryKey: true,
|
||||||
|
autoIncrement: true,
|
||||||
|
},
|
||||||
|
idCuestionario: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
p1: {
|
||||||
|
type: DataTypes.STRING(100),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p2: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p4: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p5: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p6: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p7: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p8: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p9: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p3_*: se definen como string (el JSON trae si/no)
|
||||||
|
p3_1: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_2: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_3: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_4: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p10_* y p11_*
|
||||||
|
p10_1: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p10_2: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p10_3: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p11_1: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p11_2: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p11_3: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p11_4: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p12_A_*, p12_B_*, p12_C_*, p12_D_*
|
||||||
|
// Ajusta el tamaño de la cadena según requieras
|
||||||
|
p12_A_1: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_A_2: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_A_3: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_A_4: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_B_1: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_B_2: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_B_3: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_B_4: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_C_1: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_C_2: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_C_3: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_C_4: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_D_1: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_D_2: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_D_3: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_D_4: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p12_D_5: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p13, p14, p15, p16...
|
||||||
|
p13: {
|
||||||
|
type: DataTypes.STRING(100),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p14: {
|
||||||
|
type: DataTypes.STRING(100),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p15: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p16: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p17_*
|
||||||
|
p17_1: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p17_2: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p17_3: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p18
|
||||||
|
p18: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sequelize,
|
||||||
|
modelName: 'CuestionarioAlumno2',
|
||||||
|
tableName: 'cuestionario_alumno_2',
|
||||||
|
timestamps: true,
|
||||||
|
createdAt: true,
|
||||||
|
updatedAt: false,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// Importación después de la definición para evitar dependencias circulares
|
||||||
|
const Cuestionario = require('./Cuestionario');
|
||||||
|
|
||||||
|
// Definir relaciones después de importar correctamente
|
||||||
|
CuestionarioAlumno2.belongsTo(Cuestionario, { foreignKey: 'idCuestionario' });
|
||||||
|
Cuestionario.hasMany(CuestionarioAlumno2, { foreignKey: 'idCuestionario' });
|
||||||
|
|
||||||
|
module.exports = CuestionarioAlumno2;
|
||||||
@@ -0,0 +1,154 @@
|
|||||||
|
const { DataTypes, Model } = require('sequelize');
|
||||||
|
const sequelize = require('../../config/sequelize.conf');
|
||||||
|
|
||||||
|
const Cuestionario = require('./Cuestionario');
|
||||||
|
|
||||||
|
|
||||||
|
class CuestionarioPrograma2 extends Model {}
|
||||||
|
|
||||||
|
CuestionarioPrograma2.init(
|
||||||
|
{
|
||||||
|
idCuestionarioPrograma2: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
primaryKey: true,
|
||||||
|
allowNull: false,
|
||||||
|
unique: true,
|
||||||
|
autoIncrement: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
idCuestionario: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Sección p3_A_*
|
||||||
|
p3_A_1: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_A_2: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_A_3: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_A_4: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// Sección p3_B_*
|
||||||
|
p3_B_1: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_B_2: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_B_3: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_B_4: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// Sección p3_C_*
|
||||||
|
p3_C_1: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_C_2: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_C_3: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_C_4: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_C_5: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// Sección p3_D_*
|
||||||
|
p3_D_1: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_D_2: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_D_3: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_D_4: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p3_D_5: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// Sección p3_E_*
|
||||||
|
p3_E_1: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// p1, p2, p4, p5, p6
|
||||||
|
p1: {
|
||||||
|
type: DataTypes.STRING(100),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p2: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p4: {
|
||||||
|
type: DataTypes.STRING(100),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p5: {
|
||||||
|
type: DataTypes.STRING(5),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
p6: {
|
||||||
|
type: DataTypes.STRING(100),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sequelize,
|
||||||
|
modelName: 'CuestionarioPrograma2',
|
||||||
|
tableName: 'cuestionario_programa_2',
|
||||||
|
timestamps: true,
|
||||||
|
createdAt: true,
|
||||||
|
updatedAt: false,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CuestionarioPrograma2.belongsTo(Cuestionario, { foreignKey: 'idCuestionario' });
|
||||||
|
Cuestionario.hasMany(CuestionarioPrograma2, { foreignKey: 'idCuestionario' });
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = CuestionarioPrograma2;
|
||||||
+11
-11
@@ -1,7 +1,7 @@
|
|||||||
require('../config/config');
|
require('../config/config');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const { google } = require('googleapis');
|
const { google } = require('googleapis');
|
||||||
const drive = google.drive('v3');
|
//const drive = google.drive('v3');
|
||||||
const credenciales = JSON.parse(fs.readFileSync('./cred.json', 'utf8'));
|
const credenciales = JSON.parse(fs.readFileSync('./cred.json', 'utf8'));
|
||||||
const jwtClient = new google.auth.JWT(
|
const jwtClient = new google.auth.JWT(
|
||||||
credenciales.client_email,
|
credenciales.client_email,
|
||||||
@@ -14,7 +14,7 @@ const list = (pageToken) => {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
jwtClient.authorize((err, tokens) => {
|
jwtClient.authorize((err, tokens) => {
|
||||||
if (err) reject('Error de autorización: ' + err);
|
if (err) reject('Error de autorización: ' + err);
|
||||||
drive.files.list(
|
/* drive.files.list(
|
||||||
{
|
{
|
||||||
auth: jwtClient,
|
auth: jwtClient,
|
||||||
corpora: 'user',
|
corpora: 'user',
|
||||||
@@ -30,7 +30,7 @@ const list = (pageToken) => {
|
|||||||
if (err) reject('Ha habido un error en la petición: ' + err);
|
if (err) reject('Ha habido un error en la petición: ' + err);
|
||||||
resolve(resp.data);
|
resolve(resp.data);
|
||||||
}
|
}
|
||||||
);
|
); */
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -42,7 +42,7 @@ const deleteFile = (fileId) => {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
jwtClient.authorize(async (err, tokens) => {
|
jwtClient.authorize(async (err, tokens) => {
|
||||||
if (err) reject(err);
|
if (err) reject(err);
|
||||||
drive.files.delete(
|
/* drive.files.delete(
|
||||||
{
|
{
|
||||||
fileId,
|
fileId,
|
||||||
auth: jwtClient,
|
auth: jwtClient,
|
||||||
@@ -51,7 +51,7 @@ const deleteFile = (fileId) => {
|
|||||||
if (err) reject(err);
|
if (err) reject(err);
|
||||||
resolve(resp);
|
resolve(resp);
|
||||||
}
|
}
|
||||||
);
|
); */
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -70,7 +70,7 @@ const uploadFile = (path, name, mimeType, parent) => {
|
|||||||
|
|
||||||
jwtClient.authorize(function (err, tokens) {
|
jwtClient.authorize(function (err, tokens) {
|
||||||
if (err) reject('Error de autorización: ' + err);
|
if (err) reject('Error de autorización: ' + err);
|
||||||
drive.files.create(
|
/* drive.files.create(
|
||||||
{
|
{
|
||||||
media,
|
media,
|
||||||
requestBody,
|
requestBody,
|
||||||
@@ -82,7 +82,7 @@ const uploadFile = (path, name, mimeType, parent) => {
|
|||||||
fs.unlinkSync(path);
|
fs.unlinkSync(path);
|
||||||
resolve(file.data.id);
|
resolve(file.data.id);
|
||||||
}
|
}
|
||||||
);
|
); */
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -98,7 +98,7 @@ const mkDir = (name) => {
|
|||||||
|
|
||||||
jwtClient.authorize((err, tokens) => {
|
jwtClient.authorize((err, tokens) => {
|
||||||
if (err) reject('Error de autorización: ' + err);
|
if (err) reject('Error de autorización: ' + err);
|
||||||
drive.files.create(
|
/* drive.files.create(
|
||||||
{
|
{
|
||||||
fields: 'id',
|
fields: 'id',
|
||||||
auth: jwtClient,
|
auth: jwtClient,
|
||||||
@@ -108,7 +108,7 @@ const mkDir = (name) => {
|
|||||||
if (err) reject(err);
|
if (err) reject(err);
|
||||||
resolve(res.data.id);
|
resolve(res.data.id);
|
||||||
}
|
}
|
||||||
);
|
); */
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -118,13 +118,13 @@ const update = (fileId, addParents, removeParents) => {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
jwtClient.authorize((err, tokens) => {
|
jwtClient.authorize((err, tokens) => {
|
||||||
if (err) reject('Error de autorización: ' + err);
|
if (err) reject('Error de autorización: ' + err);
|
||||||
drive.files.update(
|
/* drive.files.update(
|
||||||
{ auth: jwtClient, fileId, addParents, removeParents },
|
{ auth: jwtClient, fileId, addParents, removeParents },
|
||||||
(err, resp) => {
|
(err, resp) => {
|
||||||
if (err) reject('Ha habido un error en la petición: ' + err);
|
if (err) reject('Ha habido un error en la petición: ' + err);
|
||||||
resolve(resp.data);
|
resolve(resp.data);
|
||||||
}
|
}
|
||||||
);
|
); */
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -174,8 +174,11 @@ const validarPreTermino = (idServicio) => {
|
|||||||
return Servicio.findOne({ where: { idServicio } })
|
return Servicio.findOne({ where: { idServicio } })
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (
|
if (
|
||||||
res.idCuestionarioPrograma &&
|
|
||||||
res.idCuestionarioAlumno &&
|
// se tiene que validar buscando en la tabla de cuestionarios
|
||||||
|
|
||||||
|
//res.idCuestionarioPrograma &&
|
||||||
|
//res.idCuestionarioAlumno &&
|
||||||
res.cartaTermino &&
|
res.cartaTermino &&
|
||||||
res.informeGlobal
|
res.informeGlobal
|
||||||
)
|
)
|
||||||
@@ -189,6 +192,51 @@ const validarPreTermino = (idServicio) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const validarCuestionarioAlumno2 = (body) => {
|
||||||
|
console.log("Validando cuestionario alumno 2");
|
||||||
|
|
||||||
|
// Excluir p2 de la validación de campos nulos
|
||||||
|
const camposExcluidos = [
|
||||||
|
// 'p2'
|
||||||
|
];
|
||||||
|
|
||||||
|
// Verificar si algún campo es nulo o indefinido (excepto p2)
|
||||||
|
for (const [key, value] of Object.entries(body)) {
|
||||||
|
if (!camposExcluidos.includes(key) && (value === null || value === undefined || value === '')) {
|
||||||
|
throw new Error(`El campo ${key} no puede estar vacío.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("Validación exitosa. Todos los campos son válidos.");
|
||||||
|
return body;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const validarCuestionarioPrograma2 = (body) => {
|
||||||
|
console.log("Validando cuestionario programa 2");
|
||||||
|
|
||||||
|
// Excluir p2 de la validación de campos nulos
|
||||||
|
const camposExcluidos = [
|
||||||
|
// 'p2'
|
||||||
|
];
|
||||||
|
|
||||||
|
// Verificar si algún campo es nulo o indefinido (excepto p2)
|
||||||
|
for (const [key, value] of Object.entries(body)) {
|
||||||
|
if (!camposExcluidos.includes(key) && (value === null || value === undefined || value === '')) {
|
||||||
|
throw new Error(`El campo ${key} no puede estar vacío.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("Validación exitosa. Todos los campos son válidos.");
|
||||||
|
return body;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
yaExiste,
|
yaExiste,
|
||||||
noValido,
|
noValido,
|
||||||
@@ -203,4 +251,8 @@ module.exports = {
|
|||||||
validarNumero,
|
validarNumero,
|
||||||
validarObjetoVacio,
|
validarObjetoVacio,
|
||||||
validarPreTermino,
|
validarPreTermino,
|
||||||
|
|
||||||
|
validarCuestionarioAlumno2,
|
||||||
|
validarCuestionarioPrograma2
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,10 +3,12 @@ const app = express();
|
|||||||
const { verificaToken } = require('../middleware/autentificacion');
|
const { verificaToken } = require('../middleware/autentificacion');
|
||||||
const route = '/cuestionario_alumno';
|
const route = '/cuestionario_alumno';
|
||||||
const controllerPath = '../controller/CuestionarioAlumno';
|
const controllerPath = '../controller/CuestionarioAlumno';
|
||||||
const get = require(`${controllerPath}/get`);
|
|
||||||
const nuevo = require(`${controllerPath}/nuevo`);
|
|
||||||
|
|
||||||
// POST
|
const controllerPath2 = '../controller/CuestionarioAlumno2';
|
||||||
|
const get = require(`${controllerPath2}/get`);
|
||||||
|
const nuevo = require(`${controllerPath2}/nuevo`);
|
||||||
|
|
||||||
|
/* // POST
|
||||||
app.post(`${route}`, verificaToken, (req, res) => {
|
app.post(`${route}`, verificaToken, (req, res) => {
|
||||||
return nuevo(req.body)
|
return nuevo(req.body)
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
@@ -24,8 +26,43 @@ app.get(`${route}`, verificaToken, (req, res) => {
|
|||||||
res.download(data);
|
res.download(data);
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
res.status(400).json({ message: err.message });
|
||||||
|
});
|
||||||
|
}); */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// POST
|
||||||
|
app.post(`${route}/v2`, (req, res) => {
|
||||||
|
console.log(`${route}/v2`);
|
||||||
|
|
||||||
|
return nuevo(req.body)
|
||||||
|
.then((data) => {
|
||||||
|
res.status(200).json(data);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
|
||||||
res.status(400).json({ message: err.message });
|
res.status(400).json({ message: err.message });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// GET
|
||||||
|
app.get(`${route}/v2`, (req, res) => {
|
||||||
|
console.log(`${route}/v2`);
|
||||||
|
|
||||||
|
return get(req.query)
|
||||||
|
.then((data) => {
|
||||||
|
res.download(data);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
res.status(400).json({ message: err.message });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = app;
|
module.exports = app;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ const express = require('express');
|
|||||||
const app = express();
|
const app = express();
|
||||||
const { verificaToken } = require('../middleware/autentificacion');
|
const { verificaToken } = require('../middleware/autentificacion');
|
||||||
const route = '/cuestionario_programa';
|
const route = '/cuestionario_programa';
|
||||||
const controllerPath = '../controller/CuestionarioPrograma';
|
const controllerPath = '../controller/CuestionarioPrograma2';
|
||||||
const get = require(`${controllerPath}/get`);
|
const get = require(`${controllerPath}/get`);
|
||||||
const nuevo = require(`${controllerPath}/nuevo`);
|
const nuevo = require(`${controllerPath}/nuevo`);
|
||||||
|
|
||||||
@@ -28,4 +28,33 @@ app.get(`${route}`, verificaToken, (req, res) => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
app.post(`${route}/v2`, (req, res) => {
|
||||||
|
console.log(`${route}/v2`);
|
||||||
|
|
||||||
|
return nuevo(req.body)
|
||||||
|
.then((data) => {
|
||||||
|
res.status(200).json(data);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
|
||||||
|
res.status(400).json({ message: err.message });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// GET
|
||||||
|
app.get(`${route}/v2`, (req, res) => {
|
||||||
|
console.log(`${route}/v2`);
|
||||||
|
|
||||||
|
return get(req.query)
|
||||||
|
.then((data) => {
|
||||||
|
res.download(data);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
res.status(400).json({ message: err.message });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
module.exports = app;
|
module.exports = app;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ const app = express();
|
|||||||
app.use(require('./CasoEspecial'));
|
app.use(require('./CasoEspecial'));
|
||||||
app.use(require('./CuestionarioAlumno'));
|
app.use(require('./CuestionarioAlumno'));
|
||||||
app.use(require('./CuestionarioPrograma'));
|
app.use(require('./CuestionarioPrograma'));
|
||||||
|
|
||||||
app.use(require('./Programa'));
|
app.use(require('./Programa'));
|
||||||
app.use(require('./Servicio'));
|
app.use(require('./Servicio'));
|
||||||
app.use(require('./Status'));
|
app.use(require('./Status'));
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
PORT=3000
|
||||||
|
DB = servicio_test
|
||||||
|
USERDB = root
|
||||||
|
PASSWORDDB = mypass
|
||||||
|
HOSTDB = host.docker.internal
|
||||||
|
TYPEDB = mariadb
|
||||||
|
|
||||||
|
ESCOLARES = 127.0.0.1
|
||||||
|
ESCOLARES_PASS = mypass
|
||||||
|
|
||||||
+127
@@ -0,0 +1,127 @@
|
|||||||
|
/* CREATE TABLE `servicio` (
|
||||||
|
`idServicio` INT PRIMARY KEY
|
||||||
|
); */
|
||||||
|
--DROP TABLE IF EXISTS `Cuestionario`;
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
`Cuestionario` (
|
||||||
|
`idCuestionario` INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
|
||||||
|
`idServicio` INT,
|
||||||
|
`version` VARCHAR(50),
|
||||||
|
`titulo` VARCHAR(50),
|
||||||
|
`desc` VARCHAR(50),
|
||||||
|
`dirigidoA` VARCHAR(50),
|
||||||
|
`createdAt` DATETIME
|
||||||
|
);
|
||||||
|
|
||||||
|
--`idCuestionarioAlumno` INT, -- Agregado para relación con alumnos
|
||||||
|
--`idCuestionarioPrograma` INT, -- Agregado para relación con programas
|
||||||
|
-- `idCuestionarioAlumno1` INT, -- Agregado para relación con alumnos
|
||||||
|
-- `idCuestionarioPrograma1` INT, -- Agregado para relación con programas
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `cuestionario_alumno_2`;
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
`cuestionario_alumno_2` (
|
||||||
|
`idCuestionarioAlumno2` INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
|
||||||
|
`idCuestionario` INT,
|
||||||
|
`createdAt` DATETIME,
|
||||||
|
`p12_A_1` VARCHAR(50),
|
||||||
|
`p12_A_2` VARCHAR(50),
|
||||||
|
`p12_A_3` VARCHAR(50),
|
||||||
|
`p12_A_4` VARCHAR(50),
|
||||||
|
`p12_B_1` VARCHAR(50),
|
||||||
|
`p12_B_2` VARCHAR(50),
|
||||||
|
`p12_B_3` VARCHAR(50),
|
||||||
|
`p12_B_4` VARCHAR(50),
|
||||||
|
`p12_C_1` VARCHAR(50),
|
||||||
|
`p12_C_2` VARCHAR(50),
|
||||||
|
`p12_C_3` VARCHAR(50),
|
||||||
|
`p12_C_4` VARCHAR(50),
|
||||||
|
`p10_1` VARCHAR(50),
|
||||||
|
`p10_2` VARCHAR(50),
|
||||||
|
`p10_3` VARCHAR(50),
|
||||||
|
`p11_1` VARCHAR(50),
|
||||||
|
`p11_2` VARCHAR(50),
|
||||||
|
`p11_3` VARCHAR(50),
|
||||||
|
`p11_4` VARCHAR(50),
|
||||||
|
`p17_1` VARCHAR(50),
|
||||||
|
`p17_2` VARCHAR(50),
|
||||||
|
`p17_3` VARCHAR(50),
|
||||||
|
`p3_1` VARCHAR(50),
|
||||||
|
`p3_2` VARCHAR(50),
|
||||||
|
`p3_3` VARCHAR(50),
|
||||||
|
`p3_4` VARCHAR(50),
|
||||||
|
`p12_D_1` VARCHAR(50),
|
||||||
|
`p12_D_2` VARCHAR(50),
|
||||||
|
`p12_D_3` VARCHAR(50),
|
||||||
|
`p12_D_4` VARCHAR(50),
|
||||||
|
`p12_D_5` VARCHAR(50),
|
||||||
|
`p1` VARCHAR(150),
|
||||||
|
`p2` VARCHAR(50),
|
||||||
|
`p4` VARCHAR(50),
|
||||||
|
`p5` VARCHAR(50),
|
||||||
|
`p6` VARCHAR(50),
|
||||||
|
`p7` VARCHAR(50),
|
||||||
|
`p8` VARCHAR(50),
|
||||||
|
`p9` VARCHAR(50),
|
||||||
|
`p13` VARCHAR(50),
|
||||||
|
`p14` VARCHAR(50),
|
||||||
|
`p15` VARCHAR(50),
|
||||||
|
`p16` VARCHAR(50),
|
||||||
|
`p18` VARCHAR(50)
|
||||||
|
);
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `cuestionario_programa_2`;
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
`cuestionario_programa_2` (
|
||||||
|
`idCuestionarioPrograma2` INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
|
||||||
|
`idCuestionario` INT,
|
||||||
|
`createdAt` DATETIME,
|
||||||
|
`p3_A_1` VARCHAR(50),
|
||||||
|
`p3_A_2` VARCHAR(50),
|
||||||
|
`p3_A_3` VARCHAR(50),
|
||||||
|
`p3_A_4` VARCHAR(50),
|
||||||
|
`p3_B_1` VARCHAR(50),
|
||||||
|
`p3_B_2` VARCHAR(50),
|
||||||
|
`p3_B_3` VARCHAR(50),
|
||||||
|
`p3_B_4` VARCHAR(50),
|
||||||
|
`p3_C_1` VARCHAR(50),
|
||||||
|
`p3_C_2` VARCHAR(50),
|
||||||
|
`p3_C_3` VARCHAR(50),
|
||||||
|
`p3_C_4` VARCHAR(50),
|
||||||
|
`p3_C_5` VARCHAR(50),
|
||||||
|
`p3_D_1` VARCHAR(50),
|
||||||
|
`p3_D_2` VARCHAR(50),
|
||||||
|
`p3_D_3` VARCHAR(50),
|
||||||
|
`p3_D_4` VARCHAR(50),
|
||||||
|
`p3_D_5` VARCHAR(50),
|
||||||
|
`p3_E_1` VARCHAR(50),
|
||||||
|
`p1` VARCHAR(50),
|
||||||
|
`p2` VARCHAR(50),
|
||||||
|
`p4` VARCHAR(50),
|
||||||
|
`p5` VARCHAR(50),
|
||||||
|
`p6` VARCHAR(50),
|
||||||
|
`p7` VARCHAR(50)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Relaciones corregidas
|
||||||
|
ALTER TABLE `Cuestionario` ADD FOREIGN KEY (`idServicio`) REFERENCES `servicio` (`idServicio`);
|
||||||
|
|
||||||
|
ALTER TABLE cuestionario_alumno ADD COLUMN idCuestionario INT;
|
||||||
|
ALTER TABLE cuestionario_programa ADD COLUMN idCuestionario INT;
|
||||||
|
|
||||||
|
ALTER TABLE `cuestionario_alumno` ADD FOREIGN KEY (`idCuestionario`) REFERENCES `Cuestionario` (`idCuestionario`);
|
||||||
|
ALTER TABLE `cuestionario_alumno_2` ADD FOREIGN KEY (`idCuestionario`) REFERENCES `Cuestionario` (`idCuestionario`);
|
||||||
|
ALTER TABLE `cuestionario_programa` ADD FOREIGN KEY (`idCuestionario`) REFERENCES `Cuestionario` (`idCuestionario`);
|
||||||
|
ALTER TABLE `cuestionario_programa_2` ADD FOREIGN KEY (`idCuestionario`) REFERENCES `Cuestionario` (`idCuestionario`);
|
||||||
|
|
||||||
|
--ALTER TABLE `Cuestionario`
|
||||||
|
--ADD FOREIGN KEY (`idCuestionarioAlumno`) REFERENCES `cuestionario_alumno_2` (`idCuestionarioAlumno2`);
|
||||||
|
--ALTER TABLE `Cuestionario`
|
||||||
|
--ADD FOREIGN KEY (`idCuestionarioPrograma`) REFERENCES `cuestionario_programa_2` (`idCuestionarioPrograma2`);
|
||||||
|
--ALTER TABLE `Cuestionario`
|
||||||
|
--ADD FOREIGN KEY (`idCuestionarioAlumno1`) REFERENCES `cuestionario_alumno` (`idCuestionarioAlumno`);
|
||||||
|
--ALTER TABLE `Cuestionario`
|
||||||
|
--ADD FOREIGN KEY (`idCuestionarioPrograma1`) REFERENCES `cuestionario_programa` (`idCuestionarioPrograma`);
|
||||||
Reference in New Issue
Block a user