in functions/index.js [78:107]
async function saveFeedback(spreadsheetId, sheetTitle, data) {
const sheets = google.sheets({version: 'v4', auth: await getGoogleAPIAuthentication()});
// find spreadsheet
const spreadsheet = (await sheets.spreadsheets.get({spreadsheetId: spreadsheetId, fields: 'sheets(properties.title)'})).data;
if(!spreadsheet) {
throw new Error("Spreadsheet not found");
}
// find sheet
const sheet = spreadsheet.sheets.find(sh => sh.properties.title === sheetTitle);
if(!sheet) {
// sheet does not exist - create it
await sheets.spreadsheets.batchUpdate({ spreadsheetId: spreadsheetId, requestBody: {
"requests": [ {
"addSheet": {
"properties": {
"title": sheetTitle,
"sheetType": "GRID"
}
}
} ]
} })
}
// append data to sheet
await sheets.spreadsheets.values.append({
spreadsheetId: spreadsheetId,
range: sheetTitle + '!A1',
valueInputOption: 'RAW',
requestBody: { values: [data] }
});
}