src/_main/, ten en cuenta que al actualizar a una nueva versión de BaP en el futuro, cualquier cambio manual en los archivos del núcleo se sobrescribirá y perderá. Se sugiere contactar al referente o mantenedor del framework para sugerir mejoras o cambios antes de alterar el motor localmente.Módulo googleDrive.js
Servicio desacoplado para la interacción con la API REST v3 de Google Drive. Permite asegurar directorios remotos, listar, leer, crear y actualizar archivos en la nube usando un Access Token de Google OAuth 2.0.
Funciones Exportadas (export function)
1. ensureFolder(accessToken, folderName)
Firma: ensureFolder(accessToken: string, folderName: string): Promise<string>
Propósito: Busca un directorio por nombre en Google Drive y, si no existe, lo crea automáticamente retornando su ID remoto.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
accessToken | String | Sí | Token de acceso OAuth 2.0 con permisos de Google Drive. |
folderName | String | Sí | Nombre del directorio a asegurar o crear. |
Ejemplo de uso:
import { ensureFolder } from "../../_main/googleDrive.js";
const folderId = await ensureFolder(token, "BaP Framework Documents");
console.log("ID del directorio remoto:", folderId);2. listFiles(accessToken, folderId)
Firma: listFiles(accessToken: string, folderId: string): Promise<Array>
Propósito: Retorna la lista de archivos contenidos dentro de un directorio remoto en Google Drive.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
accessToken | String | Sí | Token OAuth 2.0 de Google. |
folderId | String | Sí | ID del directorio remoto en Google Drive. |
Ejemplo de uso:
import { listFiles } from "../../_main/googleDrive.js";
const files = await listFiles(token, folderId);
files.forEach(f => console.log("Archivo encontrado:", f.name));3. readFileContent(accessToken, fileId)
Firma: readFileContent(accessToken: string, fileId: string): Promise<string>
Propósito: Descarga el contenido en texto plano o JSON de un archivo alojado en Google Drive.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
accessToken | String | Sí | Token OAuth 2.0 de Google. |
fileId | String | Sí | ID del archivo remoto a leer. |
Ejemplo de uso:
import { readFileContent } from "../../_main/googleDrive.js";
const content = await readFileContent(token, fileId);
console.log("Contenido del archivo remoto:", content);4. createFile(accessToken, { name, content, folderId, mimeType })
Firma: createFile(accessToken: string, options: Object): Promise<Object>
Propósito: Crea un nuevo archivo en el directorio remoto de Google Drive utilizando una petición `multipart/related`.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
accessToken | String | Sí | Token OAuth 2.0 de Google. |
options.name | String | Sí | Nombre del archivo nuevo a crear. |
options.content | String | Sí | Contenido en texto o JSON del archivo. |
options.folderId | String | Sí | ID del directorio contenedor remoto. |
options.mimeType | String | Opcional | Tipo MIME (por defecto "text/xml" o "application/json"). |
Ejemplo de uso:
import { createFile } from "../../_main/googleDrive.js";
const newFile = await createFile(token, {
name: "reporte.json",
content: JSON.stringify({ status: "OK" }),
folderId: folderId,
mimeType: "application/json"
});5. updateFile(accessToken, { fileId, content, mimeType })
Firma: updateFile(accessToken: string, options: Object): Promise<Object>
Propósito: Sobrescribe y actualiza el contenido de un archivo existente en Google Drive.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
accessToken | String | Sí | Token OAuth 2.0 de Google. |
options.fileId | String | Sí | ID del archivo remoto a actualizar. |
options.content | String | Sí | Nuevo contenido del archivo. |
options.mimeType | String | Opcional | Tipo MIME del archivo. |
Ejemplo de uso:
import { updateFile } from "../../_main/googleDrive.js";
await updateFile(token, {
fileId: existingFileId,
content: JSON.stringify({ status: "UPDATED" }),
mimeType: "application/json"
});Buenas Prácticas
- Activar la característica en bap.config.json: Definiendo
"googleDrive": { "enabled": true }. - Obtener token previo: Garantizar un token OAuth 2.0 válido con
ensureGoogleAccessToken()deauth.js.