Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //necessary packages
  2. var schedule = require("node-schedule");
  3. var request = require("request");
  4. var crypto = require("crypto");
  5. var url = require("url");
  6.  
  7. //API keys
  8. var FS_API_KEY = "XXXXXXXXXXXXXXXXXX";
  9. var NINJA_API_ACCESS_KEY = "XXXXXXXXXXXXXXXXXXXX";
  10. var NINJA_API_SECRET_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
  11.  
  12. //defines when the script should be run
  13. var recurrRule = new schedule.RecurrenceRule();
  14. recurrRule.dayOfWeek = 0;  //sunday
  15. recurrRule.hour      = 17; //5:00:00 (runs once weekly)
  16. recurrRule.minute    = 0;
  17. recurrRule.second    = 0;
  18.  
  19. //sets of options for different requests from ninja/fs
  20. var fsOptionsFetchAssets = {
  21.     url: "https://nsbconsulting.freshservice.com/api/v2/assets",
  22.     method: "GET",
  23.     auth:{
  24.         'user' : FS_API_KEY,
  25.         'pass' : 'X'
  26.     }
  27. };
  28.  
  29.  
  30. //weekly job (runs at the time defined in recurrRule)
  31. /*var job = schedule.scheduleJob(recurrRule, function() {*/
  32.  
  33.     //gets existing list of assets
  34.     var assets;
  35.     function callbackFunc(error, response, body) {
  36.         if (!error && response.statusCode == 200) {        
  37.             assets = JSON.parse(body);
  38.             //console.log(assets);
  39.         }
  40.         else {
  41.             console.log(error);
  42.         }
  43.     }
  44.     request(fsOptionsFetchAssets, callbackFunc);
  45.    
  46.     //gets devices + companies from ninja
  47.     var devices, companies;
  48.     var sdate = new Date().toUTCString();
  49.     var stringToSign = Buffer.from("GET\n\n\n" + sdate+"\n/v1/devices").toString('base64');
  50.     var signature = crypto.createHmac("sha1", NINJA_API_SECRET_KEY).update(stringToSign).digest('base64');
  51.     var ninjaOptionsFetchDevices = {
  52.         url: url.resolve("http://api.ninjarmm.com","/v1/devices"),
  53.         method: "GET",
  54.         headers: {
  55.             "Authorization" : "NJ "+NINJA_API_ACCESS_KEY+":"+signature,
  56.             "x-nj-date" : sdate
  57.         }
  58.     };
  59.     var ninjaOptionsFetchCompanies = {
  60.         url: url.resolve("http://api.ninjarmm.com","/v1/customers"),
  61.         method: "GET",
  62.         headers: {
  63.             "Authorization" : "NJ "+NINJA_API_ACCESS_KEY+":"+signature,
  64.             "x-nj-date" : sdate
  65.         }
  66.     };
  67.     request(ninjaOptionsFetchDevices, function(error, response, body) {
  68.         if (!error) {          
  69.             devices = JSON.parse(body);
  70.             //console.log(devices);
  71.         }
  72.         else {
  73.             console.error("error: ", error);
  74.             console.log("status code: ", response.statusCode);
  75.         }
  76.     });
  77.     request(ninjaOptionsFetchCompanies, function(error, response, body){
  78.         if (!error) {          
  79.             companies = JSON.parse(body);
  80.             //console.log(companies);
  81.         }
  82.         else {
  83.             console.error("error: ", error);
  84.             console.log("status code: ", response.statusCode);
  85.         }
  86.     });
  87. /*});*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement