· 5 years ago · Feb 10, 2021, 12:16 AM
1// put your API key here
2const KEY = '';
3
4// custom menu
5function onOpen() {
6 var ui = SpreadsheetApp.getUi();
7 ui.createMenu('Torn Menu')
8 .addItem('Update Employee Data', 'updateEmployeeData')
9 .addToUi();
10}
11
12function callApi(key) {
13 const url = 'https://api.torn.com/company/?selections=employees&key=';
14 const response = UrlFetchApp.fetch(url + key, {'muteHttpExceptions': true});
15 const json = response.getContentText();
16 let result = null;
17
18 try {
19 result = JSON.parse(json);
20 } catch (e) {
21 Logger.log(e);
22 }
23
24 return result;
25}
26
27function updateEmployeeData() {
28 const ss = SpreadsheetApp.getActiveSpreadsheet();
29 const sheet = ss.getSheetByName('Employee List');
30
31 const data = callApi(KEY);
32
33 if (!data || !data.company_employees) {
34 Logger.log('API error, no data');
35 return;
36 }
37
38 if (sheet.getLastRow()) {
39 sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn()).clearContent();
40 }
41
42 const employees = data.company_employees;
43 for (let id in employees) {
44 const employee = employees[id];
45 sheet.appendRow([employee.name, employee.manual_labor.toLocaleString(), employee.intelligence.toLocaleString(), employee.endurance.toLocaleString()]);
46 }
47}
48