From c4056483254807db225b5d20f443978f11a30ef0 Mon Sep 17 00:00:00 2001 From: LeydiMoon18 <98631662+LeydiMoon18@users.noreply.github.com> Date: Sat, 29 Jul 2023 20:46:03 -0600 Subject: [PATCH] =?UTF-8?q?en=20la=20carpeta=20drive=20se=20hizo=20la=20fu?= =?UTF-8?q?nci=C3=B3n=20mkDirInsideOtherDir=20y=20scriptCambioDeCarpeta,?= =?UTF-8?q?=20para=20guardar=20los=20documentos=20en=20el=20nuevo=20drive,?= =?UTF-8?q?=20de=20los=20usuarios=20con=20status=201,2,3,4,5,7,8,9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/helper/drive.js | 72 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/server/helper/drive.js b/server/helper/drive.js index d6c9de0..8cd57bc 100644 --- a/server/helper/drive.js +++ b/server/helper/drive.js @@ -10,6 +10,9 @@ const jwtClient = new google.auth.JWT( ['https://www.googleapis.com/auth/drive'] ); +const Servicio = require(`../db/tablas/Servicio`); +const Usuario = require(`../db/tablas/Usuario`); + const list = (pageToken) => { return new Promise((resolve, reject) => { jwtClient.authorize((err, tokens) => { @@ -175,6 +178,75 @@ const findAll = async () => { return { folders, pdfs }; }; +const mkDirInsideOtherDir = (name, ruta) => { + return new Promise((resolve, reject) => { + const requestBody = { + name, + mimeType: 'application/vnd.google-apps.folder', + parents: [ruta], + }; + + jwtClient.authorize((err, tokens) => { + if (err) reject('Error de autorización: ' + err); + drive.files.create( + { + fields: 'id', + auth: jwtClient, + requestBody, + }, + (err, res) => { + if (err) reject(err); + resolve(res.data.id); + } + ); + }); + }); +}; + +const scriptCambioDeCarpeta = async () => { + console.log('Entrando a scriptCambioDeCarpeta'); + + const servicios = await Servicio.findAll({ + where: { idStatus: [1, 2, 3, 4, 5, 7, 8, 9] }, + }); + + const idUsuarios = servicios.map((servicio) => servicio.idUsuario); //aqui se traen todos los idUsuario de los servicios entre 1-5 + + const usuarios = await Usuario.findAll({ + where: { idUsuario: idUsuarios }, + }); + + const parentFolderId = await mkDir('Servicios [1 - 5]'); //se crea la carpeta donde se van a guardar los alumnos y se guarda el id de la carpeta + + for (let i = 0; i < usuarios.length; i++) { + //por cada cuenta + const carpetaCreada = await mkDirInsideOtherDir( + `${usuarios[i].usuario}`, + parentFolderId + ); //se crea una crapeta dentro de la carpeta cuyo id guardamos antes y guardamos el id de la carpeta creada + + await Servicio.update( + { carpeta: carpetaCreada }, + { where: { idUsuario: usuarios[i].idUsuario } } + ); // se actualiza el id de la carpeta por la que se acaba de crear + console.log( + i, + ' - ', + '[', + usuarios[i].idUsuario, + ']', + '[', + usuarios[i].usuario, + '] : [', + carpetaCreada, + ']' + ); + } + console.log('Saliendo de scriptCambioDeCarpeta'); +}; + +//scriptCambioDeCarpeta(); + module.exports = { folder, uploadFile,