Advertisement
Guest User

bassa

a guest
Jan 18th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function onOpen() {
  2.   var ui = SpreadsheetApp.getUi();
  3.    ui.createMenu('Load Managebac data')
  4.       .addItem('Import All Students','ImportStudents')
  5.       .addItem('Import All Parents','ImportParents')
  6.       .addItem('Import students by a specific Grade','test')
  7.       .addToUi();  
  8. }
  9.  
  10. function getHeaderOpt()
  11. {
  12.   var headers = {
  13.     "auth-token": '######',
  14.     "Content-Type": 'application/json'
  15.   }
  16.  
  17.   var options = {
  18.     "method" : "GET",
  19.     "headers": headers
  20.   }
  21.  
  22.   return options
  23. }
  24.  
  25. function ImportStudents()
  26. {
  27.   var output = []
  28.   var page = 1;
  29.  
  30.   var ss = SpreadsheetApp.getActiveSheet();
  31.   var setActive = SpreadsheetApp.setActiveSheet(ss.getSheetByName('Student'));
  32.   var sheet = ss.getActiveSheet();
  33.  
  34.   while(true) {
  35.     var url = "https://api.managebac.com/v2/#####/?page=" + page++;
  36.     var response = UrlFetchApp.fetch(url, getHeaderOpt())
  37.     var result = JSON.parse(response.getContentText())
  38.     var students = result["students"]
  39.    
  40.     //if result page is empty exit loop.
  41.     if (students.length == 0)
  42.       break
  43.    
  44.     students.forEach(function(elem,i)
  45.     {
  46.       if(elem["archived"] == false)
  47.       {
  48.         output.push([elem["id"],elem["first_name"],elem["last_name"],elem["class_grade"],elem["email"],elem["graduating_year"],elem["program"],elem["archived"]])
  49.       }
  50.     })
  51.      
  52.   }//end of while loop
  53.  
  54.    // clear any previous content
  55.   sheet.getRange(2,1,output.length,8).clearContent();
  56.   sheet.getRange(2,1,output.length,8).setValues(output);
  57. }
  58.  
  59.  
  60.  
  61. function ImportParents()
  62. {
  63.   var output = []
  64.   var page = 1;
  65.   var ss = SpreadsheetApp.getActiveSpreadsheet();
  66.   var sheet = ss.getActiveSheet();
  67.  
  68.   //reseting page back to 1 else it will not fetch others
  69.   while(true) {
  70.    
  71.     var url = "https://api.managebac.com/v2/######/?page=" + page++;
  72.     var response = UrlFetchApp.fetch(url, getHeaderOpt())
  73.     var result = JSON.parse(response.getContentText())
  74.     var parents = result["parents"]
  75.    
  76.     //if result page is empty exit loop.
  77.     if (parents.length == 0)
  78.       break
  79.    
  80.     parents.forEach(function(elem,i)
  81.     {
  82.       if(elem["archived"] == false)
  83.       {
  84.         output.push([elem["id"],elem["first_name"],elem["last_name"],elem["email"],elem["child_ids"]])
  85.       }
  86.     })
  87.  
  88.   }//end of while loop
  89.  
  90.   Logger.log(output);
  91.   // section to create sheets
  92.  try
  93.   {
  94.     var create = ss.insertSheet("Parents");
  95.  
  96.   }
  97.   catch(exception)
  98.   {
  99.  
  100.   }
  101.  
  102.   var setNewActive = SpreadsheetApp.setActiveSheet(ss.getSheetByName("Parents"))
  103.   sheet = ss.getActiveSheet();
  104.   sheet.getRange(2,1,output.length,5).setValues(output);
  105.  
  106.  
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement