From f22ffca48caa1f5ed7deffb94512ad7104f6b87c Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Tue, 19 Jan 2021 09:39:50 -0600 Subject: [PATCH] carpetas inicio --- server/db/antiguo.js | 39 +-------------------------- server/db/capetasDrive.js | 31 ++++++++++++++++++++++ server/helper/drive.js | 56 +++++++++++++++++++++++++++++++++------ 3 files changed, 80 insertions(+), 46 deletions(-) create mode 100644 server/db/capetasDrive.js diff --git a/server/db/antiguo.js b/server/db/antiguo.js index e0044a9..052185d 100644 --- a/server/db/antiguo.js +++ b/server/db/antiguo.js @@ -1,5 +1,4 @@ const csv = require('csvtojson'); -const drive = require('../helper/drive'); const Carrera = require('./tablas/Carrera'); const CuestionarioAlumno = require('./tablas/CuestionarioAlumno'); const CuestionarioPrograma = require('./tablas/CuestionarioPrograma'); @@ -311,40 +310,4 @@ const guardar = async () => { } }; -const carpetasRepetidas = async () => { - let carpetas = await drive.list().then((res) => { - let data = []; - - for (let i = 0; i < res.length; i++) - if (res[i].mimeType === 'application/vnd.google-apps.folder') - data.push(res[i]); - data.sort((a, b) => { - return a.name - b.name; - }); - return data; - }); - let repetidas = []; - - for (let i = 0; i < carpetas.length; i++) { - let aux = [carpetas[i]]; - for (let j = i + 1; j < carpetas.length; j++) { - if (carpetas[i].name === carpetas[j].name) aux.push(carpetas[j]); - else { - i = j - 1; - break; - } - } - if (aux.length > 1) repetidas.push(aux); - } - // console.log(carpetas.length); - // console.log(carpetas); - console.log(repetidas.length); - console.log(repetidas); -}; - -const borrarCarpetas = async () => { - let carpetas = []; -}; - -// guardar(); -carpetasRepetidas(); +guardar(); diff --git a/server/db/capetasDrive.js b/server/db/capetasDrive.js new file mode 100644 index 0000000..6af2b44 --- /dev/null +++ b/server/db/capetasDrive.js @@ -0,0 +1,31 @@ +const drive = require('../helper/drive'); +const Usuario = require('../db/tablas/Usuario'); +const Servicio = require('../db/tablas/Servicio'); + +const borrarCarpetas = async () => { + let carpetas = await drive.buscarCarpeta('418089309'); + let archivos = await drive.archivosCarpeta(carpetas[0].id); + + console.log(carpetas); + + console.log(archivos); + console.log(archivos.length); + // await Usuario.findAll({ where: { idTipoUsuario: 3 } }).then(async (res) => { + // for (let i = 0; i < res.length; i++) { + // let carpetas = await drive.buscarCarpeta(res[i].usuario); + + // console.log( + // `En numero de cuenta ${res[i].usuario} tiene ${carpetas.length} carpetas.` + // ); + // if (carpetas.length === 1) { + // await Servicio.update( + // { carpeta: carpetas[0].id }, + // { where: { idUsuario: res.idUsuario } } + // ); + // } else if (carpetas.length > 1) { + // } + // } + // }); +}; + +borrarCarpetas(); diff --git a/server/helper/drive.js b/server/helper/drive.js index f9b1a79..6436816 100644 --- a/server/helper/drive.js +++ b/server/helper/drive.js @@ -15,7 +15,7 @@ jwtClient = new google.auth.JWT( ['https://www.googleapis.com/auth/drive'] ); -const list = () => { +const list = (pageToken) => { return new Promise((resolve, reject) => { jwtClient.authorize((err, tokens) => { if (err) reject('Error de autorización: ' + err); @@ -26,19 +26,58 @@ const list = () => { supportsTeamDrives: true, includeTeamDriveItems: true, spaces: 'drive', + pageSize: 100, + pageToken, + fields: '*', + orderBy: 'name', }, - async (err, resp) => { - if (err) { - reject('Ha habido un error en la petición: ' + err); - return; - } - resolve(resp.data.files); + (err, resp) => { + if (err) reject('Ha habido un error en la petición: ' + err); + resolve(resp.data); } ); }); }); }; +// Buscar carpeta +const buscarCarpeta = 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; +}; + +// Borrar archivo const deleteFile = (fileId) => { return new Promise((resolve, reject) => { jwtClient.authorize(async (err, tokens) => { @@ -151,5 +190,6 @@ const borrarTodo = () => { module.exports = { folder, uploadFile, - list, + buscarCarpeta, + archivosCarpeta, };