Files
Gainsight/Scripts/GoogleScripts/WildHealth_Assignments/Get_Assignments.js

84 lines
2.8 KiB
JavaScript
Raw Normal View History

/* This function needs to run either once a day OR after a webhook that contains the course name.
Date range: 2/1/23 - 7/31/23
Order of operations:
- Parse Webhook, if course name == Coaching Certification, assignment == Practice Coaching Session 3 (PSA),
Activity name == Step 1: Practice Coaching Session 3 - Recording Upload
- GET List Assignments: https://api.northpass.com/v2/assignments/{assignment_uuid}/submissions
- GET Person https://api.northpass.com/v2/people/{uuid}
Fill in columns: Date Submitted, Person's Name, Email, Assignment Name, Assignment Download Link.
UUIDS:
Activity: a94171bb-0184-433e-a62d-2b8c67ad196e
Course: 03bb0fa0-df1f-4f40-b550-b59b113fd79f
Assignment: a4e082a2-9416-4fdf-9ef6-a817e25d26ee
API Key: HWxj6VTNPwbc3WghFTPzr7SjE
*/
const sheet = SpreadsheetApp.getActiveSheet();
const apiKey = "HWxj6VTNPwbc3WghFTPzr7SjE";
var assign_uid = "a4e082a2-9416-4fdf-9ef6-a817e25d26ee"
let page = 0;
function getAssignment() {
var sheet = SpreadsheetApp.getActiveSheet();
var api_url =
'https://api.northpass.com/v2/assignments/'+assign_uid+'/submissions?page='+page;
Logger.log(api_url)
const settings = {
async: true,
crossDomain: true,
method: 'GET',
headers: {
accept: 'application/json',
'X-Api-Key': apiKey
}
}
const sendMsg = UrlFetchApp.fetch(api_url, settings);
var apiResponse = sendMsg.getContentText();
var parsedata = JSON.parse(apiResponse);
var data = parsedata["data"];
if (data.length != 0){
let rowArray = []
for (item of data) {
var submit_date = item["attributes"]["created_at"];
var person = item["relationships"]["person"]["data"]["id"];
var download_link = item["links"]["download"];
var person_url = 'https://api.northpass.com/v2/people/'+person;
const settings = {
async: true,
crossDomain: true,
method: 'GET',
headers: {
accept: 'application/json',
'X-Api-Key': apiKey
}
};
const sendMsg = UrlFetchApp.fetch(person_url, settings);
var uuidResponse = sendMsg.getContentText();
var parsing = JSON.parse(uuidResponse);
var info = parsing["data"]
var full_name = info["attributes"]["full_name"];
var email = info["attributes"]["email"];
let rowArray = [submit_date, download_link, person, full_name, email];
addToSheet(rowArray);
};
} else {
}
page++;
getAssignment(page);
};
function addToSheet(rowArray){
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = Math.max(sheet.getLastRow(),1);
sheet.insertRowAfter(lastRow);
sheet.getRange(lastRow + 1, 1).setValue(rowArray[0]);
sheet.getRange(lastRow + 1, 2).setValue(rowArray[3]);
sheet.getRange(lastRow + 1, 3).setValue(rowArray[4]);
sheet.getRange(lastRow + 1, 4).setValue(rowArray[1]);
}