import { google } from 'googleapis'; import { getAuthenticatedClient } from './google-server.js'; export interface GoogleSheet { id: string; name: string; modifiedTime: string; webViewLink: string; } export interface SheetData { values: string[][]; } export async function getRecentSpreadsheets(refreshToken: string, limit: number = 10): Promise { const oauth = getAuthenticatedClient(refreshToken); const drive = google.drive({ version: 'v3', auth: oauth }); const response = await drive.files.list({ q: "mimeType='application/vnd.google-apps.spreadsheet'", orderBy: 'modifiedTime desc', pageSize: limit, fields: 'files(id,name,modifiedTime,webViewLink)' }); return response.data.files?.map(file => ({ id: file.id!, name: file.name!, modifiedTime: file.modifiedTime!, webViewLink: file.webViewLink! })) || []; } export async function getSpreadsheetData(refreshToken: string, spreadsheetId: string, range: string = 'A1:Z10'): Promise { const oauth = getAuthenticatedClient(refreshToken); const sheets = google.sheets({ version: 'v4', auth: oauth }); const response = await sheets.spreadsheets.values.get({ spreadsheetId, range }); return { values: response.data.values || [] }; } export async function getSpreadsheetInfo(refreshToken: string, spreadsheetId: string) { const oauth = getAuthenticatedClient(refreshToken); const sheets = google.sheets({ version: 'v4', auth: oauth }); const response = await sheets.spreadsheets.get({ spreadsheetId, fields: 'properties.title,sheets.properties(title,sheetId)' }); return response.data; }