Files
Gainsight/Scripts/Sandata/import.js
2024-04-05 17:16:58 -04:00

67 lines
1.7 KiB
JavaScript

const axios = require("axios")
const fs = require("fs");
const { parse } = require("csv-parse");
//let xApiKey = "XxDBlgH3CNSiD6yDgqZgpjjxB" // <<< This is for Ausitn's School
let xApiKey = 'HdZFoXGCFpt8NnTOzIQY0kVDj' // <<< This is for sandata's school
let allUsers = [];
fs.createReadStream("./sandataNevadaUsers.csv")
.pipe(parse({ delimiter: ','}))
.on("data", function (row) {
if(row[0] !== 'Email'){
allUsers.push({
email: row[0],
group: 'ST - Nevada (DHCFP)'
});
}
})
.on("error", function (error) {
console.log(error.message);
})
.on("end", async function () {
console.log("FINISHED COLLECTING ALL NEW USERS");
// console.log(allUsers[0]);
console.log(allUsers.length);
await executeFunctionChain();
})
let executeFunctionChain = async () => {
for(let i = 0; i < allUsers.length; i++){
await axios({
method: 'post',
url: 'https://api.northpass.com/v2/bulk/people',
data: {
"data": {
"attributes": {
"people": [{
"email": allUsers[i].email,
// "email": "joojinhyung@gmail.com",
"groups": allUsers[i].group
//"groups": [10593ca2-daa7-41fb-ad12-1de77d51fe81] >> wrong, uses name not id
}]
}
}
},
headers: {
'accept': 'application/json',
'x-api-key': xApiKey,
'content-type': 'application/json'
}
})
.then((res) => {
console.log(`SUCCESSFULLY ADDED USER ${allUsers[i].email} TO GROUP ${allUsers[i].group}`)
console.log(`COMPLETED USER ${i + 1}`)
// console.log(res.data);
return;
})
.catch((err) => {
console.log(err.data);
})
}
}