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';
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() {
var folder = DriveApp.getFolderById("1hAz7O-eoxFUk4YW7FoHr4uNJmPs7CiV5BjBNTLtMJzXwY0CbpykYgSAkFR5Quy_MPdn3e_5j");
var files = folder.getFiles();
@ -37,16 +26,18 @@ function main() {
}
function moveOldFiles() {
var folder = DriveApp.getFolderById("15p4vXVQd6hhcMl73VOxD8VctL2gR-q43")
Logger.log("Moving files.")
var folder = DriveApp.getFolderById("1hAz7O-eoxFUk4YW7FoHr4uNJmPs7CiV5BjBNTLtMJzXwY0CbpykYgSAkFR5Quy_MPdn3e_5j")
var files = folder.getFiles()
while (files.hasNext()) {
var file = files.next();
var getDate = new Date();
var date = Utilities.formatDate(getDate, 'America/New_York', 'MM/dd/yyyy hh' );
var fileDate = file.getDateCreated();
Logger.log("FILE: "+file+", DATE UPLOADED: "+fileDate)
var fileDateFormatted = Utilities.formatDate(fileDate, 'America/New_York', 'MM/dd/yyyy hh');
if (date != fileDateFormatted) {
const destination = DriveApp.getFolderById('17WCI5QkV9W6j35a-1n9BspTF6z_MZ9yu');
const destination = DriveApp.getFolderById('1cIPZCgoj8XdjMIfL75QfomJAxsy2smGT');
file.moveTo(destination);
}
}
@ -99,6 +90,9 @@ function austinComparseData(outdated_data, updated_data) {
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);
}
@ -129,86 +123,46 @@ function updatedDomainsOnly(domains_to_update) {
}
}
}
let tmpArray = array;
const dom = array.shift();
const groups = array;
Logger.log("{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 sheet = ss.getActiveSheet()
var dataRow = Math.max(sheet.getLastRow(),1);
let domain = tmpArray.shift();
let groupIds = tmpArray;
// let domain = tmpArray.shift();
// let groupIds = tmpArray;
Logger.log(domain)
let boo = sheet.createTextFinder(domain).findNext()
let boo = sheet.createTextFinder(dom).findNext()
if (boo != null ) {
Logger.log("Replace on Sheet Domain: "+dom)
Logger.log("New groups: "+groups)
group2 = []
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];
//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)
} else {
groupIds.forEach(item => { if (item.includes("")){ } else { group2.push(item) }});
//Logger.log(group2);
sheet.getRange(dataRow+1, 1).setValue(domain);
Logger.log("Add to Sheet: "+dom)
Logger.log("else groups: "+groups)
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)
}
}
// 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){
//Logger.log("Webhook function Object: "+JSON.stringify(domain_to_update))
var payload = domain_to_update
@ -217,5 +171,4 @@ function sendWebhook(domain_to_update){
'payload': JSON.stringify(payload)
};
UrlFetchApp.fetch('https://webhooks.workato.com/webhooks/rest/604b4fc0-fcd9-4f3b-b715-b42d7f740ba6/domains-updated', options);
}