Anthology Notes and updated the google script for the CSV parser.

This commit is contained in:
Norm Rasmussen
2024-07-08 20:01:29 -04:00
parent 413ecc1040
commit e9af572102
3 changed files with 42 additions and 32 deletions

View File

@ -47,7 +47,7 @@ function austinComparseData(outdated_data, updated_data) {
let domains_to_update = [];
let updatedFlag = 1;
let outdatedFlag = 1;
while(updatedFlag < updated_data.length && outdatedFlag < outdated_data.length){
if(updated_data[updatedFlag][0] == outdated_data[outdatedFlag][0]) {
let allUpdatedGroups = [];
@ -73,36 +73,41 @@ function austinComparseData(outdated_data, updated_data) {
}
}
}
updatedFlag++;
outdatedFlag++;
} else {
if(updated_data[updatedFlag][0] > outdated_data[outdatedFlag][0]){
outdatedFlag++;
}
}
else if(updated_data[updatedFlag][0] < outdated_data[outdatedFlag][0]){
domains_to_update.push(updated_data[updatedFlag]);
updatedFlag++;
}
}
if(updatedFlag > updated_data.length-1 || outdatedFlag > outdated_data.length-1){
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);
}
function updatedDomainsOnly(domains_to_update) {
Logger.log(domains_to_update)
var errorList = [];
var corrList = [];
for (var x = 0; x < domains_to_update.length; x++) {
var array = domains_to_update[x];
var currDomain = domains_to_update[x][0]
var errorObj = new Object();
var noErrorObj = new Object();
Logger.log("Current Domain: "+currDomain);
var errorGroups = []
var correctGroups = []
for (var i = 1; i < array.length; i++) {
var item = array[i]
if (item != "") {
Logger.log("Item/Domain: "+item)
var api_url = 'https://api.northpass.com/v2/groups/?filter[name][eq]='+encodeURIComponent(item);
const settings = {
async: true,
@ -116,19 +121,35 @@ function updatedDomainsOnly(domains_to_update) {
const sendMsg = UrlFetchApp.fetch(api_url, settings);
var uuidResponse = sendMsg.getContentText();
var parseData = JSON.parse(uuidResponse);
var groupID = parseData['data'][0]['id'];
var groupName = array.indexOf(item);
if (groupName != -1) {
array[groupName] = groupID;
if (parseData['data'].length >= 1) {
var groupID = parseData['data'][0]['id'];
var groupName = array.indexOf(item);
if (groupName != -1) {
array[groupName] = groupID;
}
correctGroups.push(item)
} else {
errorGroups.push(item);
}
}
}
errorObj[currDomain] = errorGroups;
noErrorObj[currDomain] = correctGroups;
corrList.push(noErrorObj)
errorList.push(errorObj)
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(dom, groups);
}
MailApp.sendEmail("nrasmussen@gainsight.com",
"Anthology has submitted a CSV",
"Here are the domains that will be updated: "+JSON.stringify(noErrorObj)+"\n\n"+"Group Errors (they likely don't exist): "+JSON.stringify(errorList));
MailApp.sendEmail("amitd@anthology.com",
"Anthology has submitted a CSV",
"Here are the domains that will be updated: "+JSON.stringify(noErrorObj)+"\n\n"+"Group Errors (they likely don't exist): "+JSON.stringify(errorList));
}
function replaceOnSheet(dom, groups) {
@ -141,8 +162,8 @@ function replaceOnSheet(dom, groups) {
let boo = sheet.createTextFinder(dom).findNext()
if (boo != null ) {
Logger.log("Replace on Sheet Domain: "+dom)
Logger.log("New groups: "+groups)
//Logger.log("Replace on Sheet Domain: "+dom)
//Logger.log("New groups: "+groups)
group2 = []
currCell = boo.getRowIndex();
groups.forEach(item => { if (item.length > 0) { group2.push(item) }});
@ -151,12 +172,12 @@ function replaceOnSheet(dom, groups) {
sheet.getRange(currCell, 1).setValue(dom);
sheet.getRange(currCell, 2, 1, group2[0].length).setValues(group2)
} else {
Logger.log("Add to Sheet: "+dom)
Logger.log("else groups: "+groups)
//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);
//Logger.log(group2);
group2 = [group2];
sheet.getRange(dataRow+1, 1).setValue(dom);
sheet.getRange(dataRow+1, 2, 1, group2[0].length).setValues(group2)