listo cambios
This commit is contained in:
+109
-86
@@ -1,37 +1,49 @@
|
||||
require('../config/config');
|
||||
const fs = require('fs');
|
||||
const { google } = require('googleapis');
|
||||
const drive = google.drive('v3');
|
||||
const credenciales = JSON.parse(fs.readFileSync('./cred.json', 'utf8'));
|
||||
const jwtClient = new google.auth.JWT(
|
||||
credenciales.client_email,
|
||||
null,
|
||||
credenciales.private_key,
|
||||
['https://www.googleapis.com/auth/drive']
|
||||
);
|
||||
// const drive = google.drive('v3');
|
||||
// const credenciales = JSON.parse(fs.readFileSync('./cred.json', 'utf8'));
|
||||
// const jwtClient = new google.auth.JWT(
|
||||
// credenciales.client_email,
|
||||
// null,
|
||||
// credenciales.private_key,
|
||||
// ['https://www.googleapis.com/auth/drive']
|
||||
// );
|
||||
|
||||
const loadCredentials = () => {
|
||||
try {
|
||||
const credenciales = JSON.parse(fs.readFileSync('./cred.json', 'utf8'));
|
||||
return google.auth.fromJSON(credenciales);
|
||||
} catch (err) {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
const list = (pageToken) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
jwtClient.authorize((err, tokens) => {
|
||||
if (err) reject('Error de autorización: ' + err);
|
||||
drive.files.list(
|
||||
{
|
||||
auth: jwtClient,
|
||||
corpora: 'user',
|
||||
supportsTeamDrives: true,
|
||||
includeTeamDriveItems: true,
|
||||
spaces: 'drive',
|
||||
pageSize: 1000,
|
||||
pageToken,
|
||||
// fields: '*',
|
||||
orderBy: 'name',
|
||||
},
|
||||
(err, resp) => {
|
||||
if (err) reject('Ha habido un error en la petición: ' + err);
|
||||
resolve(resp.data);
|
||||
}
|
||||
);
|
||||
});
|
||||
return new Promise(async (resolve, reject) => {
|
||||
// jwtClient.authorize((err, tokens) => {
|
||||
// if (err) reject('Error de autorización: ' + err);
|
||||
const authClient = await loadCredentials();
|
||||
const drive = google.drive({ version: 'v3', auth: authClient });
|
||||
|
||||
drive.files.list(
|
||||
{
|
||||
// auth: jwtClient,
|
||||
corpora: 'user',
|
||||
supportsTeamDrives: true,
|
||||
includeTeamDriveItems: true,
|
||||
spaces: 'drive',
|
||||
pageSize: 1000,
|
||||
pageToken,
|
||||
// fields: '*',
|
||||
orderBy: 'name',
|
||||
},
|
||||
(err, resp) => {
|
||||
if (err) reject('Ha habido un error en la petición: ' + err);
|
||||
resolve(resp.data);
|
||||
}
|
||||
);
|
||||
// });
|
||||
});
|
||||
};
|
||||
|
||||
@@ -39,26 +51,29 @@ const list = (pageToken) => {
|
||||
const deleteFile = (fileId) => {
|
||||
if (fileId === process.env.CARPETA)
|
||||
throw new Error('No se puede eliminar este archivo/carpeta.');
|
||||
return new Promise((resolve, reject) => {
|
||||
jwtClient.authorize(async (err, tokens) => {
|
||||
if (err) reject(err);
|
||||
drive.files.delete(
|
||||
{
|
||||
fileId,
|
||||
auth: jwtClient,
|
||||
},
|
||||
(err, resp) => {
|
||||
if (err) reject(err);
|
||||
resolve(resp);
|
||||
}
|
||||
);
|
||||
});
|
||||
return new Promise(async (resolve, reject) => {
|
||||
// jwtClient.authorize(async (err, tokens) => {
|
||||
// if (err) reject(err);
|
||||
const authClient = await loadCredentials();
|
||||
const drive = google.drive({ version: 'v3', auth: authClient });
|
||||
|
||||
drive.files.delete(
|
||||
{
|
||||
fileId,
|
||||
// auth: jwtClient,
|
||||
},
|
||||
(err, resp) => {
|
||||
if (err) reject(err);
|
||||
resolve(resp);
|
||||
}
|
||||
);
|
||||
// });
|
||||
});
|
||||
};
|
||||
|
||||
// SUBIR ARCHIVO
|
||||
const uploadFile = (path, name, mimeType, parent) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const requestBody = {
|
||||
name,
|
||||
parents: [parent],
|
||||
@@ -68,64 +83,72 @@ const uploadFile = (path, name, mimeType, parent) => {
|
||||
body: fs.createReadStream(`${path}`),
|
||||
};
|
||||
|
||||
jwtClient.authorize(function (err, tokens) {
|
||||
if (err) reject('Error de autorización: ' + err);
|
||||
drive.files.create(
|
||||
{
|
||||
media,
|
||||
requestBody,
|
||||
fields: 'id',
|
||||
auth: jwtClient,
|
||||
},
|
||||
(err, file) => {
|
||||
if (err) reject(err);
|
||||
fs.unlinkSync(path);
|
||||
resolve(file.data.id);
|
||||
}
|
||||
);
|
||||
});
|
||||
// jwtClient.authorize(function (err, tokens) {
|
||||
// if (err) reject('Error de autorización: ' + err);
|
||||
const authClient = await loadCredentials();
|
||||
const drive = google.drive({ version: 'v3', auth: authClient });
|
||||
|
||||
drive.files.create(
|
||||
{
|
||||
media,
|
||||
requestBody,
|
||||
fields: 'id',
|
||||
// auth: jwtClient,
|
||||
},
|
||||
(err, file) => {
|
||||
if (err) reject(err);
|
||||
fs.unlinkSync(path);
|
||||
resolve(file.data.id);
|
||||
}
|
||||
);
|
||||
// });
|
||||
});
|
||||
};
|
||||
|
||||
// CREAR CARPETA
|
||||
const mkDir = (name) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const authClient = await loadCredentials();
|
||||
const drive = google.drive({ version: 'v3', auth: authClient });
|
||||
const requestBody = {
|
||||
name,
|
||||
mimeType: 'application/vnd.google-apps.folder',
|
||||
parents: [process.env.CARPETA],
|
||||
};
|
||||
|
||||
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);
|
||||
}
|
||||
);
|
||||
});
|
||||
// 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);
|
||||
}
|
||||
);
|
||||
// });
|
||||
});
|
||||
};
|
||||
|
||||
// Update File
|
||||
const update = (fileId, addParents, removeParents) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
jwtClient.authorize((err, tokens) => {
|
||||
if (err) reject('Error de autorización: ' + err);
|
||||
drive.files.update(
|
||||
{ auth: jwtClient, fileId, addParents, removeParents },
|
||||
(err, resp) => {
|
||||
if (err) reject('Ha habido un error en la petición: ' + err);
|
||||
resolve(resp.data);
|
||||
}
|
||||
);
|
||||
});
|
||||
return new Promise(async (resolve, reject) => {
|
||||
// jwtClient.authorize((err, tokens) => {
|
||||
// if (err) reject('Error de autorización: ' + err);
|
||||
const authClient = await loadCredentials();
|
||||
const drive = google.drive({ version: 'v3', auth: authClient });
|
||||
|
||||
drive.files.update(
|
||||
{ auth: jwtClient, fileId, addParents, removeParents },
|
||||
(err, resp) => {
|
||||
if (err) reject('Ha habido un error en la petición: ' + err);
|
||||
resolve(resp.data);
|
||||
}
|
||||
);
|
||||
// });
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user