Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //necessary packages
- var schedule = require("node-schedule");
- var request = require("request");
- var crypto = require("crypto");
- var url = require("url");
- //API keys
- var FS_API_KEY = "XXXXXXXXXXXXXXXXXX";
- var NINJA_API_ACCESS_KEY = "XXXXXXXXXXXXXXXXXXXX";
- var NINJA_API_SECRET_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
- //defines when the script should be run
- var recurrRule = new schedule.RecurrenceRule();
- recurrRule.dayOfWeek = 0; //sunday
- recurrRule.hour = 17; //5:00:00 (runs once weekly)
- recurrRule.minute = 0;
- recurrRule.second = 0;
- //sets of options for different requests from ninja/fs
- var fsOptionsFetchAssets = {
- url: "https://nsbconsulting.freshservice.com/api/v2/assets",
- method: "GET",
- auth:{
- 'user' : FS_API_KEY,
- 'pass' : 'X'
- }
- };
- //weekly job (runs at the time defined in recurrRule)
- /*var job = schedule.scheduleJob(recurrRule, function() {*/
- //gets existing list of assets
- var assets;
- function callbackFunc(error, response, body) {
- if (!error && response.statusCode == 200) {
- assets = JSON.parse(body);
- //console.log(assets);
- }
- else {
- console.log(error);
- }
- }
- request(fsOptionsFetchAssets, callbackFunc);
- //gets devices + companies from ninja
- var devices, companies;
- var sdate = new Date().toUTCString();
- var stringToSign = Buffer.from("GET\n\n\n" + sdate+"\n/v1/devices").toString('base64');
- var signature = crypto.createHmac("sha1", NINJA_API_SECRET_KEY).update(stringToSign).digest('base64');
- var ninjaOptionsFetchDevices = {
- url: url.resolve("http://api.ninjarmm.com","/v1/devices"),
- method: "GET",
- headers: {
- "Authorization" : "NJ "+NINJA_API_ACCESS_KEY+":"+signature,
- "x-nj-date" : sdate
- }
- };
- var ninjaOptionsFetchCompanies = {
- url: url.resolve("http://api.ninjarmm.com","/v1/customers"),
- method: "GET",
- headers: {
- "Authorization" : "NJ "+NINJA_API_ACCESS_KEY+":"+signature,
- "x-nj-date" : sdate
- }
- };
- request(ninjaOptionsFetchDevices, function(error, response, body) {
- if (!error) {
- devices = JSON.parse(body);
- //console.log(devices);
- }
- else {
- console.error("error: ", error);
- console.log("status code: ", response.statusCode);
- }
- });
- request(ninjaOptionsFetchCompanies, function(error, response, body){
- if (!error) {
- companies = JSON.parse(body);
- //console.log(companies);
- }
- else {
- console.error("error: ", error);
- console.log("status code: ", response.statusCode);
- }
- });
- /*});*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement