Ton of updates to Cin7's academy. Notes for Artera, SPS, and Walmart. Re-downloaded the final CSV parser.

This commit is contained in:
Norm Rasmussen
2024-02-14 17:12:33 -05:00
parent d087f41e5e
commit 839f32424c
18 changed files with 257 additions and 155 deletions

View File

@ -11,7 +11,7 @@ async function prepareSheet() {
}
}
function main(previousLast) {
function main() {
var folder = DriveApp.getFolderById("1hAz7O-eoxFUk4YW7FoHr4uNJmPs7CiV5BjBNTLtMJzXwY0CbpykYgSAkFR5Quy_MPdn3e_5j");
var files = folder.getFiles();
while (files.hasNext()) {
@ -103,6 +103,7 @@ function austinComparseData(outdated_data, updated_data) {
}
function updatedDomainsOnly(domains_to_update) {
Logger.log(domains_to_update)
for (var x = 0; x < domains_to_update.length; x++) {
var array = domains_to_update[x];
for (var i = 1; i < array.length; i++) {
@ -128,105 +129,88 @@ function updatedDomainsOnly(domains_to_update) {
}
}
}
replaceOnSheet(array);
let tmpArray = array;
const dom = array.shift();
const groups = array;
//sendWebhook({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 }})
replaceOnSheet(tmpArray);
}
}
function replaceOnSheet(array) {
function replaceOnSheet(tmpArray) {
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 dom = array.shift();
let groups = array;
let domain = tmpArray.shift();
let groupIds = tmpArray;
Logger.log(dom)
let boo = sheet.createTextFinder(dom).findNext()
Logger.log(domain)
let boo = sheet.createTextFinder(domain).findNext()
if (boo != null ) {
group2 = []
currCell = boo.getRowIndex();
groups.forEach(item => { if (item.length > 0) { group2.push(item) }});
groupIds.forEach(item => { if (item.length > 0) { group2.push(item) }});
group2 = [group2];
Logger.log(group2);
sheet.getRange(currCell, 1).setValue(dom);
//Logger.log(group2);
sheet.getRange(currCell, 1).setValue(domain);
sheet.getRange(currCell, 2, 1, group2[0].length).setValues(group2)
// groups.forEach((item) => sheet.getRange(currCell, 2, 1, groups.length).setValue(item));
// groups.forEach((element) => Logger.log(element))
//sheet.getRange(currCell, 2,).setValue(groups);
} else {
groups.forEach(item => { if (item.includes("")){ } else { group2.push(item) }});
Logger.log(group2);
sheet.getRange(dataRow+1, 1).setValue(dom);
groupIds.forEach(item => { if (item.includes("")){ } else { group2.push(item) }});
//Logger.log(group2);
sheet.getRange(dataRow+1, 1).setValue(domain);
sheet.getRange(dataRow+1, 2, 1, group2[0].length).setValues(group2)
//sheet.getRange(dataRow + 1, 1).setValue(dom);
// groups.forEach((item,index,array) => array[index] = [item]);
// groups.forEach((item) => sheet.getRange(dataRow+1, 2, 1, groups.length).setValue(item));
// groups.forEach((element) => Logger.log(element))
//sheet.getRange(dataRow + 1, 2).setValue(groups)
}
// var searchResult = columnValues.findIndex(([r]) => r == dom);
// if(searchResult != -1) {
// sheet.getRange(searchResult + 2, 1)
// } else {
// sheet.getRange(dataRow + 1, 1).setValue(dom);
// sheet.getRange(dataRow + 1, 2).setValue(groups)
// }
}
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;
previousLast++
Logger.log("PrevLast: "+previousLast)
updateLog(previousLast)
writeDataToSheet(dom, groups)
}
}
// 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) {
Logger.log("Domain: "+dom+"and groups: "+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);
Logger.log(dataRow);
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 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))
//Logger.log("Webhook function Object: "+JSON.stringify(domain_to_update))
var payload = domain_to_update
var options = {
'method': 'post',