feat(temp): standalone gsheet update fxn
This commit is contained in:
@@ -79,8 +79,40 @@ router.post('/update-google-sheet/:fileName/:runId', async (req, res) => {
|
||||
return res.status(400).send({ success: false, message: 'Google Sheet integration not configured' });
|
||||
}
|
||||
return res.status(400).send({ success: false, message: 'Run not successful or no data to update' });
|
||||
} catch (error) {
|
||||
} catch (error: any) {
|
||||
logger.log('error', `Failed to write data to Google Sheet for ${req.params.fileName}_${req.params.runId}: ${error.message}`);
|
||||
return res.status(500).send({ success: false, message: 'Failed to update Google Sheet', error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
export async function updateGoogleSheet(fileName: string, runId: string) {
|
||||
try {
|
||||
const run = await readFile(`./../storage/runs/${fileName}_${runId}.json`);
|
||||
const parsedRun = JSON.parse(run);
|
||||
|
||||
if (parsedRun.status === 'success' && parsedRun.serializableOutput) {
|
||||
const data = parsedRun.serializableOutput as { [key: string]: any }[];
|
||||
const integrationConfig = await loadIntegrations(); // Assume this function loads config
|
||||
|
||||
if (integrationConfig) {
|
||||
const { spreadsheetId, sheetName } = integrationConfig;
|
||||
|
||||
if (spreadsheetId && sheetName) {
|
||||
// Convert data to Google Sheets format (headers and rows)
|
||||
const headers = Object.keys(data[0]);
|
||||
const rows = data.map((row: { [key: string]: any }) => Object.values(row));
|
||||
const outputData = [headers, ...rows]; // Include headers
|
||||
|
||||
await writeDataToSheet(spreadsheetId, sheetName, outputData);
|
||||
logger.log('info', `Data written to Google Sheet successfully for ${fileName}_${runId}`);
|
||||
}
|
||||
} else {
|
||||
logger.log('error', 'Google Sheet integration not configured');
|
||||
}
|
||||
} else {
|
||||
logger.log('error', 'Run not successful or no data to update');
|
||||
}
|
||||
} catch (error: any) {
|
||||
logger.log('error', `Failed to write data to Google Sheet for ${fileName}_${runId}: ${error.message}`);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user