diff --git a/.gitignore b/.gitignore index 0f7a761..59a9e0d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ .env node_modules/ cred.json -uploads/* +server/uploads/* diff --git a/server/app.js b/server/app.js index 749614b..ba0b38e 100644 --- a/server/app.js +++ b/server/app.js @@ -15,10 +15,10 @@ app.use( app.use(bodyParser.json()); -app.get('/', (req, res) => res.send('API PCPUMA')); +app.get('/', (req, res) => res.send('API IRIS')); app.use(require('./routes/index')); app.listen(process.env.PORT, () => - console.log(`API PCPUMA corriendo en el puerto: ${process.env.PORT}`.rainbow) + console.log(`API IRIS corriendo en el puerto: ${process.env.PORT}`.rainbow) ); diff --git a/server/controller/Servicio/nuevo.js b/server/controller/Servicio/nuevo.js index bfd0ddd..a55d354 100644 --- a/server/controller/Servicio/nuevo.js +++ b/server/controller/Servicio/nuevo.js @@ -1,20 +1,27 @@ const { Op } = require('sequelize'); +const drive = require('../../helper/drive'); const Servicio = require('../../db/tablas/Servicio'); const Usuario = require('../../db/tablas/Usuario'); const Programa = require('../../db/tablas/Programa'); const Carrera = require('../../db/tablas/Carrera'); const validar = require('../../helper/validar'); -const nuevo = async (body) => { +const nuevo = async (body, file) => { let idUsuario = validar.validarId(body.idUsuario); let idPrograma = validar.validarId(body.idPrograma); let idCarrera = validar.validarId(body.idCarrera); + let numeroCuenta = validar.validarNumeroCuenta(body.numeroCuenta); let creditos = validar.validarNumero(body.creditos); let correo = validar.validarCorreo(body.correo); let fechaInicio = validar.validarFecha(body.fechaInicio); let fechaFin = validar.validarFecha(body.fechaFin); - let carpeta = ''; - let cartaAceptacion = ''; + let carpeta = await drive.folder(numeroCuenta); + let cartaAceptacion = await drive.uploadFile( + `./server/uploads/${validar.validar(file, 'El archivo')}`, + `Carta_Aceptacion.pdf`, + 'application/pdf', + carpeta + ); return Usuario.findOne({ where: { idUsuario, idTipoUsuario: 3 }, diff --git a/server/controller/Usuario/update_alumno.js b/server/controller/Usuario/responsableUpdate.js similarity index 100% rename from server/controller/Usuario/update_alumno.js rename to server/controller/Usuario/responsableUpdate.js diff --git a/server/controller/Usuario/update_responsable.js b/server/controller/Usuario/update_responsable.js deleted file mode 100644 index e69de29..0000000 diff --git a/server/helper/drive.js b/server/helper/drive.js index cdcd347..00a92c9 100644 --- a/server/helper/drive.js +++ b/server/helper/drive.js @@ -108,6 +108,7 @@ const uploadFile = (file, name, mimeType, parent) => { }, (err, file) => { if (err) reject(err); + // fs.unlinkSync(file); resolve(file.data.id); } ); @@ -120,9 +121,34 @@ const uploadFile = (file, name, mimeType, parent) => { //uploadFile("arturo.jpg","image/jpeg","1DswUbL4uWE2RlB01XHLAIlPwh_0AXBHw"); //list() -module.exports = { - deleteFile, - mkDir, - uploadFile, - list, +const folder = (numeroCuenta) => { + return list() + .then((res) => { + for (let i = 0; i < res.length; i++) { + if ( + res[i].mimeType === 'application/vnd.google-apps.folder' && + res[i].name === numeroCuenta + ) + return res[i].id; + } + return mkDir(numeroCuenta); + }) + .then((res) => { + return res; + }); +}; + +const borrarTodo = () => { + return list().then(async (res) => { + console.log(res); + // for (let i = 0; i < res.length; i++) + // if (res[i].name !== 'Babyhelon') await deleteFile(res[i].id); + }); +}; + +borrarTodo(); + +module.exports = { + folder, + uploadFile, }; diff --git a/server/routes/Servicio.js b/server/routes/Servicio.js index e6edc2f..8c30d88 100644 --- a/server/routes/Servicio.js +++ b/server/routes/Servicio.js @@ -1,5 +1,7 @@ const express = require('express'); +const multer = require('multer'); const app = express(); +const upload = multer({ dest: 'server/uploads' }); const route = '/servicio'; const nuevo = require('../controller/Servicio/nuevo'); const serviciosAdmin = require('../controller/Servicio/serviciosAdmin'); @@ -7,8 +9,8 @@ const serviciosResponsable = require('../controller/Servicio/serviciosResponsabl const admin = require('../controller/Servicio/admin'); const alumno = require('../controller/Servicio/alumno'); -app.post(`${route}/nuevo`, (req, res) => { - return nuevo(req.body) +app.post(`${route}/nuevo`, upload.single('cartaAceptacion'), (req, res) => { + return nuevo(JSON.parse(req.body.alumno), req.file.filename) .then((data) => { res.status(201).json(data); })