summaryrefslogtreecommitdiffstats
path: root/afm-client/app/Frontend/widgets/Notifications/TokenRefreshSvc.js
diff options
context:
space:
mode:
authorFulup Ar Foll <fulup@iot.bzh>2016-05-29 15:50:40 +0200
committerFulup Ar Foll <fulup@iot.bzh>2016-05-29 15:50:40 +0200
commit96190f9cd583d9182c692c88d3342109bad81157 (patch)
tree5d5b098e64c14b7be1da47961ed6600ce355020b /afm-client/app/Frontend/widgets/Notifications/TokenRefreshSvc.js
parent922b183f441a6e68b55592596fa62cc6e1814f74 (diff)
Clean up to prepare new version of API
Diffstat (limited to 'afm-client/app/Frontend/widgets/Notifications/TokenRefreshSvc.js')
-rw-r--r--afm-client/app/Frontend/widgets/Notifications/TokenRefreshSvc.js69
1 files changed, 41 insertions, 28 deletions
diff --git a/afm-client/app/Frontend/widgets/Notifications/TokenRefreshSvc.js b/afm-client/app/Frontend/widgets/Notifications/TokenRefreshSvc.js
index 4d7aed6..3ddd270 100644
--- a/afm-client/app/Frontend/widgets/Notifications/TokenRefreshSvc.js
+++ b/afm-client/app/Frontend/widgets/Notifications/TokenRefreshSvc.js
@@ -25,7 +25,7 @@
'use strict';
var template =
- '<div class="afb-monitor" ng-click="getping()">' +
+ '<div class="afb-monitor" ng-click="getping()">' +
'<span class="afb-refresh-token" >afb://{{hostname}}:{{httpdport}}</span>' +
'<i class="{{icon}}"></i>' +
'</div>';
@@ -65,60 +65,74 @@ angular.module('TokenRefresh', ['AppConfig', 'ModalNotification'])
scope.status = 0;
};
- scope.onsuccess = function(jresp) {
- if (jresp.request.token) AppConfig.session.token = jresp.request.token;
- if (jresp.request.uuid) AppConfig.session.uuid = jresp.request.uuid;
- if (jresp.request.timeout) AppConfig.session.timeout = jresp.request.timeout;
+ scope.onsuccess = function(jresp, errcode) {
+
+ if (errcode !== 200 || jresp.request.status !== "success") {
+ Notification.warning ({message: "auto-connect :" + jresp.request.info, delay: 10000});
+ scope.offline();
+ return false;
+ }
if (scope.logged !== true) {
- Notification.success ({message: "AppFramework Binder Back to Live", delay: 3000});
+ Notification.success ({message: "AppFramework Binder Connected", delay: 3000});
scope.online();
if (scope.callback) scope.callback(jresp);
}
- scope.status = 1;
+
+ scope.status = 1;
+ return true;
};
// Check Binder status
scope.getping = function() {
- AppCall.get ("token", "ping", {/*query*/},function(result) {
- if (result.status === 200) scope.onsuccess (result.data);
- else scope.onerror();
+ AppCall.get (scope.plugin, "ping", {/*query*/},function(jresp, errcode) {
+ if (errcode !== 200 || jresp.request.status !== "success") {
+ Notification.warning ({message: jresp.request.info, delay: 5000});
+ scope.offline();
+ return;
+ }
// restart a new timer for next ping
$timeout (scope.getping, AppConfig.session.pingrate*1000);
- });
+ }, scope.onerror);
};
// Check Binder status
scope.refresh = function() {
- AppCall.get ("token", "refresh", {/*query*/},function(result) {
- if (result.status === 200) scope.onsuccess (result.data);
- else scope.onerror();
+ AppCall.get (scope.plugin, "refresh", {/*query*/}, function(jresp, errcode) {
+
+ scope.onsuccess (jresp, errcode);
+
// restart a new timer for next refresh
$timeout (scope.refresh, AppConfig.session.timeout *250);
- });
+ }, scope.onerror);
};
// Initial connection
- scope.tkcreate = function() {
-
- AppCall.get ("token", "create", {token: AppConfig.session.initial},function(result) {
- if (result.status === 200) scope.onsuccess (result.data);
- else scope.onerror();
- });
- };
+ scope.loggin = function() {
+ AppCall.get (scope.plugin, "connect", {token: AppConfig.session.initial}, function(jresp, errcode) {
+
+ if (!scope.onsuccess (jresp, errcode)) return;
+
+ // Intial token was accepted let's start ping & refresh
+ $timeout (scope.getping, AppConfig.session.pingrate*1000);
+ $timeout (scope.refresh, AppConfig.session.timeout *250);
+ }, scope.onerror);
+ };
+
+
+ // Parse Widget Parameters
+ scope.plugin = attrs.plugin || "auth";
scope.icon = attrs.icon || "fi-lightbulb";
scope.hostname = $location.host();
scope.httpdport = $location.port();
scope.autolog = JSON.parse(attrs.autolog || false);
- if (scope.autolog) scope.tkcreate();
-
- // Init ping and refresh process
- $timeout (scope.getping, AppConfig.session.pingrate*1000);
- $timeout (scope.refresh, AppConfig.session.timeout *250);
+ // autostart log if requested
+ if (scope.autolog) scope.loggin();
+
}
return {
@@ -133,4 +147,3 @@ angular.module('TokenRefresh', ['AppConfig', 'ModalNotification'])
})();
console.log ("Token Refresh Loaded");
-