From 27ee764eb504df22c58aa28b9855b7e93090f477 Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Wed, 20 Jan 2021 00:39:21 -0600 Subject: [PATCH] carpetas sin modificar --- server/db/capetasDrive.js | 79 +++++++++++++++++++++++++-------------- server/helper/drive.js | 62 ++++++++++++------------------ 2 files changed, 73 insertions(+), 68 deletions(-) diff --git a/server/db/capetasDrive.js b/server/db/capetasDrive.js index 1cdf54e..62c56a3 100644 --- a/server/db/capetasDrive.js +++ b/server/db/capetasDrive.js @@ -1,50 +1,71 @@ const drive = require('../helper/drive'); -const Usuario = require('../db/tablas/Usuario'); -const Servicio = require('../db/tablas/Servicio'); +const Usuario = require('./tablas/Usuario'); +const Servicio = require('./tablas/Servicio'); + +const buscarCarpetas = (array, numeroCuenta) => { + let arrayAux = []; + + for (let i = 0; i < array.length; i++) + if (array[i].name === numeroCuenta) arrayAux.push(array[i]); + return arrayAux; +}; + +const buscarArchivos = (array, idParent) => { + let arrayAux = []; + + for (let i = 0; i < array.length; i++) + if (array[i].parents[0] === idParent) arrayAux.push(array[i]); + return arrayAux; +}; const borrarCarpetas = async () => { - await Usuario.findAll({ where: { idTipoUsuario: 3 } }).then(async (res) => { - console.log(`Tenemos ${res.length} alumnos`); - for (let i = 0; i < res.length; i++) { - let carpetasAlumno = await drive.buscarCarpetas(res[i].usuario); + const { pdf, carpetas } = await drive.archivosFicheros(); + console.log('Sa cargo todo el drive correctamente.'); + await Usuario.findAll({ where: { idTipoUsuario: 3 } }).then(async (res) => { + console.log(`Hay ${res.length} alumnos.`); + for (let i = 0; i < res.length; i++) { + let carpetasAlumno = buscarCarpetas(carpetas, res[i].usuario); + + console.log(`${(100 * i) / res.length}%`); console.log( - `El numero de cuenta ${res[i].usuario} tiene ${carpetasAlumno.length} carpetas.` - ); - console.log( - `La carpeta con la que nos qudaremos es ${carpetasAlumno[0].id}` + `El numero de cuenta ${res[i].usuario} tiene ${ + carpetasAlumno.length + } carpeta${carpetasAlumno.length > 1 ? 's' : ''}.` ); + if (carpetasAlumno.length > 0) { + console.log( + `La carpeta ${carpetasAlumno[0].name} con la que nos quedaremos es ${carpetasAlumno[0].id}.` + ); + // await Servicio.update( + // { carpeta: carpetasAlumno[0].id }, + // { where: { idUsuario: res[i].idUsuario } } + // ); + } if (carpetasAlumno.length > 1) { for (let j = 1; j < carpetasAlumno.length; j++) { - let archivos = await drive.archivosCarpeta(carpetasAlumno[j].id); + let archivosCarpeta = buscarArchivos(pdf, carpetasAlumno[j].id); console.log( - `La carpeta ${carpetasAlumno[j].name} con id ${carpetasAlumno[j].id} tiene ${archivos.length} archivos.` + `La carpeta ${carpetasAlumno[j].id} tiene ${ + archivosCarpeta.length + } archivo${archivosCarpeta.length > 1 ? 's' : ''}.` ); - for (let k = 0; k < archivos.length; k++) { - console.log( - `Se movio el archivo ${archivos[k].name} con id ${archivos[k].id} de la carpeta ${carpetasAlumno[j].id} a la carpeta ${carpetasAlumno[0].id}` - ); + for (let k = 0; k < archivosCarpeta.length; k++) { // await drive.update( - // archivos[k].id, + // archivosCarpeta[k].id, // carpetasAlumno[0].id, // carpetasAlumno[j].id // ); + console.log( + `Se movio el archivo ${archivosCarpeta[k].name} con id ${archivosCarpeta[k].id} de la carpeta ${carpetasAlumno[j].id} a la carpeta ${carpetasAlumno[0].id}` + ); + // await drive.deleteFile(carpetasAlumno[j].id); + console.log(`Se elimino la carpeta con id ${carpetasAlumno[j].id}`); } - console.log(`Se borro la carpet ${carpetasAlumno[j].id}`); - // await drive.deleteFile(carpetasAlumno[j].id) - } - - if (carpetasAlumno.length > 0) { - // await Servicio.update( - // { carpeta: carpetasAlumno[0].id }, - // { where: { idUsuario: res[i].idUsuario } } - // ); } } - console.log( - '------------------------------------------------------------------' - ); + console.log('------------------------------------------------------'); } }); }; diff --git a/server/helper/drive.js b/server/helper/drive.js index 1b87ef6..2e85794 100644 --- a/server/helper/drive.js +++ b/server/helper/drive.js @@ -129,43 +129,6 @@ const update = (fileId, addParents, removeParents) => { }); }; -// Buscar carpeta -const buscarCarpetas = async (name) => { - const data = []; - let pageToken = ''; - - do { - let response = await list(pageToken); - let files = response.files; - - for (let i = 0; i < files.length; i++) - if ( - files[i].name === name //&& - // files[i].mimeType === 'application/vnd.google-apps.folder' - ) - data.push(files[i]); - if (response.nextPageToken) pageToken = response.nextPageToken; - else pageToken = ''; - } while (pageToken); - return data; -}; - -const archivosCarpeta = async (id) => { - let pageToken = ''; - const data = []; - - do { - let response = await list(pageToken); - let files = response.files; - - for (let i = 0; i < files.length; i++) - if (files[i].parents[0] === id) data.push(files[i]); - if (response.nextPageToken) pageToken = response.nextPageToken; - else pageToken = ''; - } while (pageToken); - return data; -}; - const folder = async (numeroCuenta) => { let pageToken = ''; @@ -195,11 +158,32 @@ const borrarTodo = () => { // borrarTodo(); +const archivosFicheros = async () => { + let pageToken = ''; + const pdf = []; + const carpetas = []; + + do { + let response = await list(pageToken); + + for (let i = 0; i < response.files.length; i++) { + if (response.files[i].mimeType === 'application/vnd.google-apps.folder') + carpetas.push(response.files[i]); + else pdf.push(response.files[i]); + } + if (response.nextPageToken) pageToken = response.nextPageToken; + else pageToken = ''; + } while (pageToken); + + return { pdf, carpetas }; +}; + +// archivosFicheros(); + module.exports = { folder, uploadFile, - buscarCarpetas, - archivosCarpeta, deleteFile, update, + archivosFicheros, };