Another update to the Anthology CSV parsing script...

This commit is contained in:
Norm Rasmussen
2024-02-16 21:48:04 -05:00
parent 06aba90bca
commit dff0550ebd

View File

@ -1,16 +1,5 @@
const apiKey = '8ALsk8jDOlynEwn8ScMBSnG87'; const apiKey = '8ALsk8jDOlynEwn8ScMBSnG87';
async function prepareSheet() {
var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1Kck1UUOkVIU4kbBC8b_bl77fNaCTSFStiv0I5Gg-kIc/');
sheet = ss.getActiveSheet();
lastRow = sheet.getLastRow();
sheet.clear()
sheet.getRange(1,1).setValue("domain");
for (var sh = 1; sh < 100; sh++) {
sheet.getRange(1, sh+1).setValue("groups_"+sh)
}
}
function main() { function main() {
var folder = DriveApp.getFolderById("1hAz7O-eoxFUk4YW7FoHr4uNJmPs7CiV5BjBNTLtMJzXwY0CbpykYgSAkFR5Quy_MPdn3e_5j"); var folder = DriveApp.getFolderById("1hAz7O-eoxFUk4YW7FoHr4uNJmPs7CiV5BjBNTLtMJzXwY0CbpykYgSAkFR5Quy_MPdn3e_5j");
var files = folder.getFiles(); var files = folder.getFiles();
@ -37,16 +26,18 @@ function main() {
} }
function moveOldFiles() { function moveOldFiles() {
var folder = DriveApp.getFolderById("15p4vXVQd6hhcMl73VOxD8VctL2gR-q43") Logger.log("Moving files.")
var folder = DriveApp.getFolderById("1hAz7O-eoxFUk4YW7FoHr4uNJmPs7CiV5BjBNTLtMJzXwY0CbpykYgSAkFR5Quy_MPdn3e_5j")
var files = folder.getFiles() var files = folder.getFiles()
while (files.hasNext()) { while (files.hasNext()) {
var file = files.next(); var file = files.next();
var getDate = new Date(); var getDate = new Date();
var date = Utilities.formatDate(getDate, 'America/New_York', 'MM/dd/yyyy hh' ); var date = Utilities.formatDate(getDate, 'America/New_York', 'MM/dd/yyyy hh' );
var fileDate = file.getDateCreated(); var fileDate = file.getDateCreated();
Logger.log("FILE: "+file+", DATE UPLOADED: "+fileDate)
var fileDateFormatted = Utilities.formatDate(fileDate, 'America/New_York', 'MM/dd/yyyy hh'); var fileDateFormatted = Utilities.formatDate(fileDate, 'America/New_York', 'MM/dd/yyyy hh');
if (date != fileDateFormatted) { if (date != fileDateFormatted) {
const destination = DriveApp.getFolderById('17WCI5QkV9W6j35a-1n9BspTF6z_MZ9yu'); const destination = DriveApp.getFolderById('1cIPZCgoj8XdjMIfL75QfomJAxsy2smGT');
file.moveTo(destination); file.moveTo(destination);
} }
} }
@ -99,6 +90,9 @@ function austinComparseData(outdated_data, updated_data) {
break; break;
} }
} }
MailApp.sendEmail("nrasmussen@gainsight.com",
"Anthology has submitted a CSV",
"Here are the domains that will be updated: "+domains_to_update);
updatedDomainsOnly(domains_to_update); updatedDomainsOnly(domains_to_update);
} }
@ -129,86 +123,46 @@ function updatedDomainsOnly(domains_to_update) {
} }
} }
} }
let tmpArray = array;
const dom = array.shift(); const dom = array.shift();
const groups = array; const groups = array;
Logger.log("{domain_to_update : {domain :"+dom+", group_ids : "+groups+" }}") Logger.log("{domain_to_update : {domain :"+dom+", group_ids : "+groups+" }}")
sendWebhook({domain_to_update : { domain: dom, group_ids: groups }}) sendWebhook({domain_to_update : { domain: dom, group_ids: groups }})
replaceOnSheet(tmpArray); replaceOnSheet(dom, groups);
} }
} }
function replaceOnSheet(tmpArray) { function replaceOnSheet(dom, groups) {
var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1Kck1UUOkVIU4kbBC8b_bl77fNaCTSFStiv0I5Gg-kIc/'); var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1Kck1UUOkVIU4kbBC8b_bl77fNaCTSFStiv0I5Gg-kIc/');
var sheet = ss.getActiveSheet() var sheet = ss.getActiveSheet()
var dataRow = Math.max(sheet.getLastRow(),1); var dataRow = Math.max(sheet.getLastRow(),1);
let domain = tmpArray.shift(); // let domain = tmpArray.shift();
let groupIds = tmpArray; // let groupIds = tmpArray;
Logger.log(domain)
let boo = sheet.createTextFinder(domain).findNext() let boo = sheet.createTextFinder(dom).findNext()
if (boo != null ) { if (boo != null ) {
Logger.log("Replace on Sheet Domain: "+dom)
Logger.log("New groups: "+groups)
group2 = [] group2 = []
currCell = boo.getRowIndex(); currCell = boo.getRowIndex();
groupIds.forEach(item => { if (item.length > 0) { group2.push(item) }}); groups.forEach(item => { if (item.length > 0) { group2.push(item) }});
group2 = [group2]; group2 = [group2];
//Logger.log(group2); //Logger.log(group2);
sheet.getRange(currCell, 1).setValue(domain); sheet.getRange(currCell, 1).setValue(dom);
sheet.getRange(currCell, 2, 1, group2[0].length).setValues(group2) sheet.getRange(currCell, 2, 1, group2[0].length).setValues(group2)
} else { } else {
groupIds.forEach(item => { if (item.includes("")){ } else { group2.push(item) }}); Logger.log("Add to Sheet: "+dom)
//Logger.log(group2); Logger.log("else groups: "+groups)
sheet.getRange(dataRow+1, 1).setValue(domain); group2 = []
//groups.forEach(item => { if (item.includes("")){ } else { group2.push(item) }});
groups.forEach(item => { if (item.length > 0) { group2.push(item) }});
Logger.log(group2);
group2 = [group2];
sheet.getRange(dataRow+1, 1).setValue(dom);
sheet.getRange(dataRow+1, 2, 1, group2[0].length).setValues(group2) sheet.getRange(dataRow+1, 2, 1, group2[0].length).setValues(group2)
} }
} }
// function fullParse(full_data, previousLast) {
// for (var x = 1; x < full_data.length; x++) {
// var array = full_data[x];
// for (var i = 1; i < array.length; i++) {
// var item = array[i]
// if (item != "") {
// var api_url = 'https://api.northpass.com/v2/groups/?filter[name][eq]='+encodeURIComponent(item);
// const settings = {
// async: true,
// crossDomain: true,
// method: 'GET',
// headers: {
// accept: 'application/json',
// 'X-Api-Key': apiKey
// }
// };
// const sendMsg = UrlFetchApp.fetch(api_url, settings);
// var uuidResponse = sendMsg.getContentText();
// var parseData = JSON.parse(uuidResponse)
// //Logger.log("Current Check:"+item)
// var groupID = parseData['data'][0]['id']
// var groupName = array.indexOf(item);
// if (groupName != -1) {
// array[groupName] = groupID;
// }
// }
// }
// const dom = array.shift();
// const groups = array;
// writeDataToSheet(dom, groups)
// }
// }
//Inserts a new sheet and writes a 2D array of data in it
// function writeDataToSheet(dom, groups) {
// var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1Kck1UUOkVIU4kbBC8b_bl77fNaCTSFStiv0I5Gg-kIc/');
// var sheet = ss.getActiveSheet()
// var dataRow = Math.max(sheet.getLastRow(),1);
// sheet.insertRowAfter(dataRow+1);
// sheet.getRange(dataRow+1, 1).setValue(dom);
// for (var g = 0; g < groups.length; g++) {
// sheet.getRange(dataRow+1, g+2).setValue(groups[g]);
// }
// }
function sendWebhook(domain_to_update){ function sendWebhook(domain_to_update){
//Logger.log("Webhook function Object: "+JSON.stringify(domain_to_update)) //Logger.log("Webhook function Object: "+JSON.stringify(domain_to_update))
var payload = domain_to_update var payload = domain_to_update
@ -217,5 +171,4 @@ function sendWebhook(domain_to_update){
'payload': JSON.stringify(payload) 'payload': JSON.stringify(payload)
}; };
UrlFetchApp.fetch('https://webhooks.workato.com/webhooks/rest/604b4fc0-fcd9-4f3b-b715-b42d7f740ba6/domains-updated', options); UrlFetchApp.fetch('https://webhooks.workato.com/webhooks/rest/604b4fc0-fcd9-4f3b-b715-b42d7f740ba6/domains-updated', options);
} }