-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample.js
92 lines (76 loc) · 3.04 KB
/
example.js
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
requirejs([
'bower_components/jquery/dist/jquery',
'bower_components/oauth2-client-js/dist/oauth2-client'
], function(jQuery, OAuth) {
var timedelay = 100;
var objects = [];
var dataporten = new OAuth.Provider({
id: 'dataporten',
authorization_url: 'https://auth.dataporten.no/oauth/authorization'
});
try {
var response = dataporten.parse(window.location.hash);
} catch (e) {
console.log(e);
}
if (!dataporten.hasAccessToken()) {
$("#loginout").html('<a href="javascript:login();">Log in</a>');
} else {
$("#loginout").html('<a href="javascript:logout();">Log out</a>');
(function fetchLoop() {
$.ajax({
url: 'https://kikora-test.dataporten-api.no/',
headers: {"Authorization": "Bearer " + dataporten.getAccessToken()},
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Bearer " + dataporten.getAccessToken());
},
success: function(data){
console.log(data);
$("#errors").empty();
for (var error in data.errors) {
$("#errors").append(data.errors[error]);
}
for (var i=0; i<data.data.length; i++) {
if (!objects.hasOwnProperty(data.data[i].organization.name)) {
objects[data.data[i].organization.name] = {};
objects[data.data[i].organization.name].current = data.data[i].solvedExercises.today - data.data[i].solvedExercises.lastMinute;
}
objects[data.data[i].organization.name].delta = (data.data[i].solvedExercises.today - objects[data.data[i].organization.name].current) / (60 * 1000 / timedelay);
}
},
error: function(jqXHR, textStatus, errorThrown) {
console.error(jqXHR);
console.error(textStatus);
console.error(errorThrown);
}
});
setTimeout(fetchLoop, 60000);
})();
}
login = function() {
var request = new OAuth.Request({
client_id: '2904ce9c-e111-448c-ad66-48c244c894c7',
redirect_uri: 'https://kikora.github.io/dataporten-livecounter-app/'
});
dataporten.remember(request);
window.location.href = dataporten.requestToken(request);
}
logout = function() {
dataporten.deleteTokens();
location.href = location.href.replace(location.hash, "");
location.reload();
}
function viewLoop() {
$("#data").empty();
for (var k in objects) {
obj = objects[k];
$("#data").append(
"<h2>" + k + "</h2>" +
"Exercises solved today: " + Math.ceil(obj.current)
);
obj.current += obj.delta;
}
setTimeout(viewLoop, timedelay);
}
viewLoop();
});