Improved both api request() in zabbixAPI and zabbixAPIService.

Improved api request error handling.
This commit is contained in:
Alexander Zobnin
2016-01-31 15:06:36 +03:00
parent 1d3e2337a2
commit 63cb31003c
2 changed files with 33 additions and 30 deletions

View File

@@ -17,6 +17,7 @@ function (angular) {
* @return {object} response.result
*/
this.request = function(api_url, method, params, options, auth) {
var deferred = $q.defer();
var requestData = {
jsonrpc: '2.0',
method: method,
@@ -24,8 +25,12 @@ function (angular) {
id: 1
};
// Set auth parameter only if it needed
if (auth) {
if (auth === "") {
// Reject immediately if not authenticated
deferred.reject({data: "Not authorised."});
return deferred.promise;
} else if (auth) {
// Set auth parameter only if it needed
requestData.auth = auth;
}
@@ -46,19 +51,20 @@ function (angular) {
requestOptions.headers.Authorization = options.basicAuth;
}
return backendSrv.datasourceRequest(requestOptions).then(function (response) {
backendSrv.datasourceRequest(requestOptions).then(function (response) {
// General connection issues
if (!response.data) {
return [];
deferred.reject(response);
}
// Handle Zabbix API errors
else if (response.data.error) {
throw new ZabbixException(response.data.error);
deferred.reject(response.data.error);
}
return response.data.result;
deferred.resolve(response.data.result);
});
return deferred.promise;
};
/**