-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReportAPI
More file actions
107 lines (94 loc) · 3.51 KB
/
ReportAPI
File metadata and controls
107 lines (94 loc) · 3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
function generateUserUsageReport() {
var today = new Date();
var oneWeekAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000);
var timezone = Session.getScriptTimeZone();
Logger.log(oneWeekAgo);
var date = Utilities.formatDate(oneWeekAgo, timezone, 'yyyy-MM-dd');
var parameters = [
'accounts:last_login_time',
'gmail:num_emails_received',
'docs:num_docs',
'accounts:gmail_used_quota_in_mb',
'accounts:drive_used_quota_in_mb',
'accounts:gplus_photos_used_quota_in_mb',
'accounts:used_quota_in_mb',
'accounts:total_quota_in_mb',
'accounts:used_quota_in_percentage'
];
var rows = [];
var link = "";
var pageToken, page;
do {
page = AdminReports.UserUsageReport.get('all', date, {
parameters: parameters.join(','),
maxResults: 500,
pageToken: pageToken
});
var reports = page.usageReports;
if (reports) {
for (var i = 0; i < reports.length; i++) {
var report = reports[i];
var parameterValues = getParameterValues(report.parameters);
// Logger.log(i);
var total;
Logger.log("1:"+parameterValues['accounts:total_quota_in_mb']);
if(parameterValues['accounts:total_quota_in_mb'] == -1){
total = 'unlimited';
}else{
total =parameterValues['accounts:total_quota_in_mb'];
}
link = addLinkChartPie('Repport for '+report.entity.userEmail,parameterValues['accounts:total_quota_in_mb'],parameterValues['accounts:gmail_used_quota_in_mb'],parameterValues['accounts:drive_used_quota_in_mb'],parameterValues['accounts:gplus_photos_used_quota_in_mb']);
var row = [
report.entity.userEmail,
parameterValues['docs:num_docs'],
parameterValues['gmail:num_emails_received'],
parameterValues['accounts:gmail_used_quota_in_mb'],
parameterValues['accounts:drive_used_quota_in_mb'],
parameterValues['accounts:gplus_photos_used_quota_in_mb'],
parameterValues['accounts:used_quota_in_mb'],
total,
parameterValues['accounts:used_quota_in_percentage']+'%',
link
];
Logger.log(row);
rows.push(row);
var u = i+2;
Logger.log(u);
var strRange = 'D'+ u +':G'+u;
}
}
pageToken = page.nextPageToken;
} while (pageToken);
if (rows.length > 0) {
//var spreadsheet = SpreadsheetApp.create('Google Apps User Usage Report');
var spread = SpreadsheetApp.getActive();
var sheet = spread.getSheetByName("Manager storage for users");
deleteData(sheet);
// Append the headers.
// var headers = ['Date', 'User', 'Last Login', 'Num Emails Received',
// 'Num Docs'];
// sheet.appendRow(headers);
// Append the results.
sheet.getRange(2, 1, rows.length, 10).setValues(rows);
// Logger.log('Report spreadsheet created: %s', spreadsheet.getUrl());
} else {
Logger.log('No results returned.');
}
}
function getParameterValues(parameters) {
return parameters.reduce(function(result, parameter) {
var name = parameter.name;
var value;
if (parameter.intValue !== undefined) {
value = parameter.intValue;
} else if (parameter.stringValue !== undefined) {
value = parameter.stringValue;
} else if (parameter.datetimeValue !== undefined) {
value = new Date(parameter.datetimeValue);
} else if (parameter.boolValue !== undefined) {
value = parameter.boolValue;
}
result[name] = value;
return result;
}, {});
}