Fix connection errors handling, fixes #236.

This commit is contained in:
Alexander Zobnin
2016-09-24 11:08:22 +03:00
parent 3a713846b6
commit dfbcce9c8f
2 changed files with 25 additions and 18 deletions

View File

@@ -41,12 +41,12 @@ function ZabbixAPIService($q, alertSrv, zabbixAPICoreService) {
request(method, params) { request(method, params) {
var self = this; var self = this;
return this.zabbixAPICore.request(this.url, method, params, this.requestOptions, this.auth) return this.zabbixAPICore
.then(function(result) { .request(this.url, method, params, this.requestOptions, this.auth)
.then((result) => {
return result; return result;
}, }, (error) => {
// Handle API errors // Handle API errors
function(error) {
if (isNotAuthorized(error.data)) { if (isNotAuthorized(error.data)) {
return self.loginOnce().then( return self.loginOnce().then(
function() { function() {
@@ -56,15 +56,18 @@ function ZabbixAPIService($q, alertSrv, zabbixAPICoreService) {
function(error) { function(error) {
self.alertAPIError(error.data); self.alertAPIError(error.data);
}); });
} else {
this.alertSrv.set("Connection Error", error.data, 'error', 5000);
} }
}); });
} }
alertAPIError(message) { alertAPIError(message, timeout = 5000) {
this.alertSrv.set( this.alertSrv.set(
"Zabbix API Error", "Zabbix API Error",
message, message,
'error' 'error',
timeout
); );
} }

View File

@@ -51,7 +51,8 @@ class ZabbixAPICoreService {
requestOptions.headers.Authorization = options.basicAuth; requestOptions.headers.Authorization = options.basicAuth;
} }
this.backendSrv.datasourceRequest(requestOptions).then(function (response) { this.backendSrv.datasourceRequest(requestOptions)
.then((response) => {
// General connection issues // General connection issues
if (!response.data) { if (!response.data) {
deferred.reject(response); deferred.reject(response);
@@ -63,7 +64,10 @@ class ZabbixAPICoreService {
} }
deferred.resolve(response.data.result); deferred.resolve(response.data.result);
}, (error) => {
deferred.reject(error.err);
}); });
return deferred.promise; return deferred.promise;
} }