in marketing-analytics/activation/gmp-googleads-connector/src/api_handlers/sheets_load_csv.js [98:138]
async sendDataInternal(spreadsheets, message, messageId, config) {
let data;
try {
data = JSON.parse(message);
} catch (error) {
this.logger.info(`This is not a JSON string. Data is not from GCS.`);
data = message;
}
const sheetName = config.sheetName;
const pasteDataRequest = Object.assign(
{
coordinate: {},
type: DEFAULT_PASTE_TYPE,
delimiter: DEFAULT_DELIMITER,
},
config.pasteData);
const coordinate = pasteDataRequest.coordinate;
try {
await spreadsheets.clearSheet(sheetName);
coordinate.sheetId = await spreadsheets.getSheetId(sheetName);
coordinate.rowIndex = coordinate.rowIndex || 0;
const sheetHeader = config.sheetHeader;
if (sheetHeader) {
await spreadsheets.loadData(sheetHeader, pasteDataRequest, 'header');
coordinate.rowIndex += sheetHeader.trim().split('\n').length;
}
if (data.bucket) { // Data is a GCS file.
return this.loadCsvToSheet_(
spreadsheets, config, pasteDataRequest, data, messageId);
} else { // Data comes from the message data.
await this.setDimensions_(
spreadsheets, sheetName, data, pasteDataRequest);
return spreadsheets.loadData(data, pasteDataRequest);
}
} catch (error) {
return {
result: false,
errors: [error.toString()],
}
}
}