From bd454750bac5a7a5b0b5fe70855e6ccf627a40fe Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Fri, 26 Feb 2021 14:17:42 -0600 Subject: [PATCH] update caso especial --- server/controller/CasoEspecial/nuevo.js | 13 ++--- server/controller/CasoEspecial/update.js | 63 ++++++++++++++++++++++++ server/controller/Servicio/reporte.js | 0 server/controller/Servicio/update.js | 2 +- server/db/tablas/CasoEspecial.js | 8 ++- server/routes/CasoEspecial.js | 20 ++++++++ 6 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 server/controller/CasoEspecial/update.js create mode 100644 server/controller/Servicio/reporte.js diff --git a/server/controller/CasoEspecial/nuevo.js b/server/controller/CasoEspecial/nuevo.js index e0c5969..9fa0860 100644 --- a/server/controller/CasoEspecial/nuevo.js +++ b/server/controller/CasoEspecial/nuevo.js @@ -11,6 +11,7 @@ const nuevo = async (body, file) => { const numeroCuenta = validar.validarNumeroCuenta(body.numeroCuenta); const creditos = validar.validarNumero(body.creditos); const correo = validar.validarCorreo(body.correo); + const telefono = validar.validarNumero(body.telefono, 15); const fechaInicio = validar.validarFecha(body.fechaInicio); const fechaFin = validar.validarFecha(body.fechaFin); const fechaNacimiento = validar.validarFecha(body.fechaNacimiento); @@ -20,10 +21,10 @@ const nuevo = async (body, file) => { 200 ); const institucion = body.institucion - ? validar.validarTexto(body.institucion, 'El texto institucion.', 100) + ? validar.validarTexto(body.institucion, 'El texto institucion.', 200) : ''; const dependencia = body.dependencia - ? validar.validarTexto(body.dependencia, 'El texto dependencia.', 100) + ? validar.validarTexto(body.dependencia, 'El texto dependencia.', 200) : ''; const motivo = body.motivo ? validar.validarNumero(body.motivo, 'El texto motivo.', 1) @@ -52,12 +53,7 @@ const nuevo = async (body, file) => { }) .then((res) => { carpeta = res; - return drive.uploadFile( - path, - `archivos.zip`, - 'application/zip', - carpeta - ); + return drive.uploadFile(path, `archivos.zip`, 'application/zip', carpeta); }) .then((res) => CasoEspecial.create({ @@ -66,6 +62,7 @@ const nuevo = async (body, file) => { idStatus, creditos, correo, + telefono, institucion, dependencia, motivo, diff --git a/server/controller/CasoEspecial/update.js b/server/controller/CasoEspecial/update.js new file mode 100644 index 0000000..6a0d003 --- /dev/null +++ b/server/controller/CasoEspecial/update.js @@ -0,0 +1,63 @@ +const drive = require('../../helper/drive'); +const validar = require('../../helper/validar'); +const CasoEspecial = require('../../db/tablas/CasoEspecial'); + +const update = async (body, file) => { + const idCasoEspecial = validar.validarId(body.idCasoEspecial); + const dataUpdate = {}; + + return CasoEspecial.findOne({ where: { idCasoEspecial } }) + .then(async (res) => { + if (!res) throw new Error('Este Caso Especiaal no existe en la db.'); + if (file) + dataUpdate.archivoZip = await drive.uploadFile( + `./server/uploads/${file}`, + `archivos.pdf`, + 'application/zip', + res.carpeta + ); + if (body.correo) dataUpdate.correo = validar.validarCorreo(body.correo); + if (body.fechaInicio) + dataUpdate.fechaInicio = validar.validarFecha(body.fechaInicio); + if (body.fechaFin) + dataUpdate.fechaFin = validar.validarFecha(body.fechaFin); + if (body.fechaNacimiento) + dataUpdate.fechaNacimiento = validar.validarFecha(body.fechaNacimiento); + if (body.direccion) + dataUpdate.direccion = validar.validarAlfanumerico( + body.direccion, + 'La dirección', + 200 + ); + if (body.telefono) + dataUpdate.telefono = validar.validarNumero(body.telefono, 15); + if (body.institucion) + dataUpdate.institucion = validar.validarTexto( + body.institucion, + 'El texto institucion.', + 200 + ); + if (body.dependencia) + dataUpdate.dependencia = validar.validarTexto( + body.dependencia, + 'El texto dependencia.', + 200 + ); + if (body.motivo) + dataUpdate.motivo = validar.validarNumero( + body.motivo, + 'El texto motivo.', + 1 + ); + if (validar.isObjectEmpty(dataUpdate)) + throw new Error( + 'No se envio nada para actualizar este Caso Especiaal.' + ); + return CasoEspecial.update(dataUpdate, { where: { idCasoEspecial } }); + }) + .then((res) => ({ + message: 'Se guardo correctamente los cambios de este servicio.', + })); +}; + +module.exports = update; diff --git a/server/controller/Servicio/reporte.js b/server/controller/Servicio/reporte.js new file mode 100644 index 0000000..e69de29 diff --git a/server/controller/Servicio/update.js b/server/controller/Servicio/update.js index 53357b2..5d96c7c 100644 --- a/server/controller/Servicio/update.js +++ b/server/controller/Servicio/update.js @@ -58,7 +58,7 @@ const update = async (body, files) => { return Servicio.update(dataUpdate, { where: { idServicio } }); }) .then((res) => ({ - message: 'Se guadro correctamente los cambios de este servicio.', + message: 'Se guardo correctamente los cambios de este servicio.', })); }; diff --git a/server/db/tablas/CasoEspecial.js b/server/db/tablas/CasoEspecial.js index 8ea8cb2..4a77331 100644 --- a/server/db/tablas/CasoEspecial.js +++ b/server/db/tablas/CasoEspecial.js @@ -22,13 +22,17 @@ CasoEspecial.init( type: DataTypes.STRING(60), allowNull: false, }, + telefono: { + type: DataTypes.STRING(15), + allowNull: false, + }, institucion: { - type: DataTypes.STRING(100), + type: DataTypes.STRING(200), allowNull: true, defaultValue: null, }, dependencia: { - type: DataTypes.STRING(100), + type: DataTypes.STRING(200), allowNull: true, defaultValue: null, }, diff --git a/server/routes/CasoEspecial.js b/server/routes/CasoEspecial.js index 7104c31..e8ea59c 100644 --- a/server/routes/CasoEspecial.js +++ b/server/routes/CasoEspecial.js @@ -9,6 +9,7 @@ const nuevo = require('../controller/CasoEspecial/nuevo'); const serviciosEspeciales = require('../controller/CasoEspecial/serviciosEspeciales'); const casoEspecial = require('../controller/CasoEspecial/casoEspecial'); const liberacion = require('../controller/CasoEspecial/liberacion'); +const update = require('../controller/CasoEspecial/update'); const eliminarArchivo = (filename) => { fs.unlinkSync(`./server/uploads/${filename}`); @@ -72,4 +73,23 @@ app.put( } ); +app.put( + `${route}/update`, + // verificaToken, + upload.single('archivos'), + (req, res) => { + return update( + JSON.parse(req.body.alumno), + req.file ? req.file.filename : '' + ) + .then((data) => { + res.status(201).json(data); + }) + .catch((err) => { + if (req.file) eliminarArchivo(req.file.filename); + res.status(400).json({ message: err.message }); + }); + } +); + module.exports = app;