frontend/app/scripts/services/httpService.js (72 lines of code) (raw):
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
'use strict';
angular.module('serviceCenter')
.service('httpService', ['$http', '$q', '$mdDialog', 'apiConstant', function($http, $q, $mdDialog, apiConstant) {
function apiRequest(requrl, method, payload, headers, nopopup) {
var tenant = localStorage.getItem('tenant');
if (!tenant || tenant == undefined || tenant == null) {
tenant = 'default';
localStorage.setItem('tenant', 'default');
}
var defer = $q.defer();
if (undefined === requrl || null === requrl || undefined === method || null === method) {
defer.reject("invalid params");
return defer.promise;
}
var baseUrl = "/sc"
if (undefined === headers || null === headers) {
headers = {
'x-domain-name': tenant
};
} else {
headers['x-domain-name'] = tenant;
}
var url = baseUrl + '/' + requrl;
$http({
url: url,
method: method,
data: payload,
headers: headers
}).then(function(response) {
defer.resolve(response);
}, function(error) {
if (nopopup) {
defer.reject(error);
return;
}
var parentEl = angular.element(document.body);
$mdDialog.show({
parent: parentEl,
templateUrl: 'views/serverError.html',
locals: {
error: error
},
skipHide: true,
controller: function($scope, $mdDialog, error) {
switch (error.status) {
case 502:
error.data = "Service-Center is not reachable"
break;
case 500:
error.data = "Mostly probably the Service-Center is not running or crashed"
break;
case 400:
error.data = "The request is in-appropriate"
break;
case 404:
error.data = "Requested entity was not found"
break;
}
$scope.error = error;
$scope.closeDialog = function() {
$mdDialog.hide();
};
}
});
defer.reject(error);
});
return defer.promise;
}
return {
apiRequest: apiRequest
};
}]);