Fixed up GoGuardian for Nergis. Added some Walmart notes and tasks and (almost) finished the parse csv script for Anthology.
This commit is contained in:
@ -1,102 +1,59 @@
|
||||
const apiKey = '8ALsk8jDOlynEwn8ScMBSnG87';
|
||||
|
||||
let indexRange = (arr, start, end) => {
|
||||
return arr.slice(start, end)
|
||||
}
|
||||
|
||||
function main() {
|
||||
var folder = DriveApp.getFolderById("15p4vXVQd6hhcMl73VOxD8VctL2gR-q43")
|
||||
var files = folder.getFiles()
|
||||
while (files.hasNext()) {
|
||||
var file = files.next();
|
||||
var date = "Thu Jan 04 2024 14:12:11 GMT-0500 (Eastern Standard Time)"
|
||||
Logger.log(date)
|
||||
Logger.log(file.getLastUpdated().toString())
|
||||
if (date == file.getLastUpdated().toString()) {
|
||||
//var date = "Wed Jan 10 2024 15:01:58 GMT-0500 (Eastern Standard Time)"
|
||||
var getDate = new Date();
|
||||
var date = Utilities.formatDate(getDate, 'America/New_York', 'MM/dd/yyyy');
|
||||
var fileDate = file.getLastUpdated();
|
||||
var fileDateFormatted = Utilities.formatDate(fileDate, 'America/New_York', 'MM/dd/yyyy');
|
||||
if (date == fileDateFormatted) {
|
||||
var updated_file = file.getBlob();
|
||||
var updated_blob = updated_file.getDataAsString();
|
||||
var updated_data = Utilities.parseCsv(updated_blob);
|
||||
Logger.log(file.getName())
|
||||
} else {
|
||||
var outdated_file = file.getBlob();
|
||||
var outdated_blob = outdated_file.getDataAsString();
|
||||
var outdated_data = Utilities.parseCsv(outdated_blob);
|
||||
Logger.log(file.getName())
|
||||
}
|
||||
var updated_data = Utilities.parseCsv(updated_blob, ',');
|
||||
}
|
||||
parseCSV(outdated_data, updated_data)
|
||||
}
|
||||
quickParse(updated_data);
|
||||
//parseCSV(outdated_data, updated_data)
|
||||
}
|
||||
|
||||
function parseCSV(outdated_data, updated_data) {
|
||||
let domains_to_update = {};
|
||||
let updatedFlag = 0;
|
||||
let outdatedFlag = 0;
|
||||
for (item of outdated_data.slice(1)) {
|
||||
outdatedFlag++
|
||||
}
|
||||
Logger.log(outdatedFlag)
|
||||
for (item of updated_data) {
|
||||
updatedFlag++
|
||||
}
|
||||
Logger.log(updatedFlag)
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Output needs to be:
|
||||
// {
|
||||
// domain_to_update: {
|
||||
// domain: 'gainsight.com',
|
||||
// group_ids: ['uuid1', 'uuid2']
|
||||
// }
|
||||
//}
|
||||
|
||||
function backup(outdated_mapping, updated_mapping) {
|
||||
//let domains_to_update = [];
|
||||
let domains_to_update = {};
|
||||
let updatedFlag = 0;
|
||||
let outdatedFlag = 0;
|
||||
|
||||
while(updatedFlag < updated_mapping.length || outdatedFlag < outdated_mapping.length){
|
||||
|
||||
if(updated_mapping[updatedFlag]['column_0'] == outdated_mapping[outdatedFlag]['column_0']){
|
||||
let updateFlag = false;
|
||||
let allUpdatedGroups = [];
|
||||
let allOutdatedGroups = [];
|
||||
let domain = updated_mapping[updatedFlag]['column_0'];
|
||||
for(let i = 1; i < Object.keys(updated_mapping[updatedFlag]).length; i++){
|
||||
let column = `column_${i}`;
|
||||
allUpdatedGroups.push(updated_mapping[updatedFlag][column].trim());
|
||||
}
|
||||
for(let j = 1; j < Object.keys(outdated_mapping[outdatedFlag]).length; j++){
|
||||
let column = `column_${j}`;
|
||||
allOutdatedGroups.push(outdated_mapping[outdatedFlag][column].trim());
|
||||
}
|
||||
|
||||
if(allUpdatedGroups.length !== allOutdatedGroups.length){
|
||||
//let updatedDomain = {};
|
||||
//updatedDomain[domain] = allUpdatedGroups;
|
||||
//domains_to_update.push(updatedDomain);
|
||||
domains_to_update[domain] = allUpdatedGroups;
|
||||
} else {
|
||||
for(let k = 0; k < allUpdatedGroups.length; k++){
|
||||
if(allOutdatedGroups.indexOf(allUpdatedGroups[k]) == -1){
|
||||
//let updatedDomain = {};
|
||||
//updatedDomain[domain] = allUpdatedGroups;
|
||||
//domains_to_update.push(updatedDomain);
|
||||
domains_to_update[domain] = allUpdatedGroups;
|
||||
function quickParse(updated_data) {
|
||||
for (var x = 1; x < updated_data.length; x++) {
|
||||
var array = updated_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]='+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)
|
||||
var groupID = parseData['data'][0]['id']
|
||||
var groupName = array.indexOf(item);
|
||||
if (groupName != -1) {
|
||||
array[groupName] = groupID;
|
||||
}
|
||||
}
|
||||
|
||||
updatedFlag++;
|
||||
outdatedFlag++;
|
||||
} else {
|
||||
if(updated_mapping[updatedFlag]['column_0'] > outdated_mapping[outdatedFlag]['column_0']){
|
||||
outdatedFlag++;
|
||||
}
|
||||
else if(updated_mapping[updatedFlag]['column_0'] < outdated_mapping[outdatedFlag]['column_0']){
|
||||
updatedFlag++;
|
||||
}
|
||||
}
|
||||
|
||||
if(updatedFlag > updated_mapping.length-1 || outdatedFlag > outdated_mapping.length-1){
|
||||
break;
|
||||
const dom = array.shift();
|
||||
const groups = array;
|
||||
Logger.log(groups)
|
||||
const domain_to_update = { domain: dom, group_ids: groups }
|
||||
Logger.log(domain_to_update)
|
||||
}
|
||||
}
|
||||
Logger.log(domains_to_update)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user