-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdec-wrapper.js
104 lines (83 loc) · 2.21 KB
/
dec-wrapper.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
93
94
95
96
97
98
99
100
101
102
103
104
(function() {
'use strict';
angular.module('decWrapper', []);
})();
(function() {
'use strict';
angular.module('decWrapper')
.provider('connectionManager', ConnectionManager);
/** @ngInject */
function ConnectionManager($windowProvider) {
var $window = $windowProvider.$get();
var decInitMethod = $window.init;
this.$get = get;
/** @ngInject */
function get($window, $q) {
var deferred = $q.defer();
var connectionStatus = {
isOnline: false
};
function initCallback(initResponse) {
connectionStatus.initResponse = initResponse;
if (initResponse.successCode === '0') {
connectionStatus.isOnline = true;
deferred.resolve(connectionStatus);
}
else {
connectionStatus.isOnline = false;
deferred.reject(connectionStatus);
}
}
function initialize(appName, subscriptions) {
if (decInitMethod) {
try {
decInitMethod(initCallback, subscriptions, appName);
}
catch (e) {
deferred.reject(e);
}
}
else {
throw 'DEC initialization method not set';
}
return deferred.promise;
}
return {
initialize: initialize,
get status() {
return connectionStatus;
}
};
}
get.$inject = ["$window", "$q"];
}
ConnectionManager.$inject = ["$windowProvider"];
})();
(function() {
'use strict';
angular.module('decWrapper')
.factory('decFactory', DecFactory);
/** @ngInject */
function DecFactory(connectionManager, driveInstanceManager) {
return {
connection: connectionManager,
drive: driveInstanceManager
};
}
DecFactory.$inject = ["connectionManager", "driveInstanceManager"];
})();
(function() {
'use strict';
angular
.module('decWrapper')
.provider('driveInstanceManager', DriveInstanceManager);
/** @ngInject */
function DriveInstanceManager($windowProvider) {
var $window = $windowProvider.$get();
var driveInstance = $window.drive;
this.$get = function() {
return driveInstance;
};
}
DriveInstanceManager.$inject = ["$windowProvider"];
})();