-
Notifications
You must be signed in to change notification settings - Fork 6
/
sugar.js
56 lines (48 loc) · 1.49 KB
/
sugar.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
var SugarClient = require('./SugarClient/client');
var JSONAPIClient = require('./json-api-client');
var auth = require('./auth');
var config = require('./config');
if (typeof navigator !== 'undefined') {
SugarClient.Primus = require('./SugarClient/primus');
SugarClient.host = config.sugarHost;
var sugarClient = new SugarClient();
var sugarApiClient = new JSONAPIClient(config.sugarHost, {
'Content-Type': 'application/json',
'Accept': 'application/json',
}, {
beforeEveryRequest: function() {
return auth.checkBearerToken();
}
});
auth.listen('refresh', function (token) {
sugarClient.refreshToken(token);
});
auth.listen('change', function() {
auth.checkCurrent()
.then(function(user) {
if (user) {
sugarClient.userId = user.id;
auth.checkBearerToken()
.then(function (token) {
sugarClient.refreshToken(token);
})
if (process.env.NODE_ENV !== 'production') {
sugarClient.on('response', function() {
var args = Array.prototype.slice.call(arguments);
console.log.apply(console, ['[SUGAR RESPONSE]'].concat(args));
});
}
} else {
sugarClient.disconnect();
}
})
.catch(function(e) {
console.error(e)
throw new Error('Failed to checkCurrent auth from sugar client');
});
});
module.exports = {
sugarClient: sugarClient,
sugarApiClient: sugarApiClient,
};
}