/**
* @ngdoc service
* @name Base
* @module s4c.services.Base
*
* @description Componente para acesso a api do backend e/ou comunicação entre controllers
*
*
*/
(function () {
angular.module('s4c.services', [])
.factory('Base', Base);
Base.$inject = ['$rootScope', '$q', '$http', 'API_ENDPOINT', 'API_ENDPOINT_COB', 'API_ENDPOINT_MULTIVIS_MANAGER', '$mdDialog', '$timeout'];
/**
* @method Base
* @param {*} $http
* @param {*} $q
* @param {*} API_ENDPOINT
* @param {*} $rootScope
* @param {*} $mdDialog
* @param {*} $timeout
* @param {*} API_ENDPOINT_COB
* @param {*} API_ENDPOINT_MULTIVIS_MANAGER
*/
function Base($rootScope, $q, $http, API_ENDPOINT, API_ENDPOINT_COB, API_ENDPOINT_MULTIVIS_MANAGER, $mdDialog, $timeout) {
var service = {
obter: obter,
salvar: salvar,
atualizar: atualizar,
remover: remover,
obterCob: obterCob,
multivisManagerPost: multivisManagerPost,
obterDoManager: obterDoManager,
};
var res = $rootScope.res;
var showDialog = true;
/**
* @method obterCob
* @param {*} url
* @param {*} param
* @param {*} headers
*/
function obterCob(url, params, headers) {
var deferred = $q.defer();
$http.get(API_ENDPOINT_COB + url, {
params: params
})
.then(function (response) {
deferred.resolve(response.data);
}, function (err) {
deferred.reject({
message: err.data,
status: err.status
});
if (showDialog) {
if (err.data.message) {
$mdDialog
.show($mdDialog.alert()
.title(res('COMUM_ERRO'))
.content(res(err.data.message))
.ok(res('COMUM_OK')));
showDialog = false;
$timeout(function () {
showDialog = true;
}, 30000);
}
}
});
return deferred.promise;
}
/**
* @method obter
* @param {*} url
* @param {*} param
* @param {*} headers
*/
function obter(url, params, headers) {
var deferred = $q.defer();
$http.get(API_ENDPOINT + url, {
params: params,
headers: headers
})
.then(function (response) {
deferred.resolve(response.data);
}, function (err) {
deferred.reject({
message: err.data,
status: err.status
});
if (showDialog) {
if (err.data.message) {
$mdDialog
.show($mdDialog.alert()
.title(res('COMUM_ERRO'))
.content(res(err.data.message))
.ok(res('COMUM_OK')));
showDialog = false;
$timeout(function () {
showDialog = true;
}, 30000);
}
}
});
return deferred.promise;
}
/**
* @method obterDoManager
* @param {*} url
* @param {*} param
* @param {*} headers
*/
function obterDoManager(url, params, headers) {
var deferred = $q.defer();
$http.get(API_ENDPOINT_MULTIVIS_MANAGER + url, {
params: params,
headers: headers
})
.then(function (response) {
deferred.resolve(response.data);
}, function (err) {
deferred.reject({
message: err.data,
status: err.status
});
if (showDialog) {
if (err.data.message) {
$mdDialog
.show($mdDialog.alert()
.title(res('COMUM_ERRO'))
.content(res(err.data.message))
.ok(res('COMUM_OK')));
showDialog = false;
$timeout(function () {
showDialog = true;
}, 30000);
}
}
});
return deferred.promise;
}
/**
* @method salvar
* @param {*} url
* @param {*} objeto
*/
function salvar(url, objeto) {
var deferred = $q.defer();
$http.post(API_ENDPOINT + url, objeto)
.then(function (response) {
deferred.resolve(response.data);
}, function (err) {
deferred.reject({
message: err.data,
status: err.status
});
if (showDialog) {
if (err.data.message) {
$mdDialog
.show($mdDialog.alert()
.title(res('COMUM_ERRO'))
.content(res(err.data.message))
.ok(res('COMUM_OK')));
showDialog = false;
$timeout(function () {
showDialog = true;
}, 30000);
}
}
});
return deferred.promise;
}
/**
* @method multivisManagerPost
* @param {*} url
* @param {*} objeto
*/
function multivisManagerPost(url, objeto) {
var deferred = $q.defer();
$http.post(API_ENDPOINT_MULTIVIS_MANAGER + url, objeto)
.then(function (response) {
deferred.resolve(response.data);
}, function (err) {
deferred.reject({
message: err.data,
status: err.status
});
if (showDialog) {
if (err.data.message) {
$mdDialog
.show($mdDialog.alert()
.title(res('COMUM_ERRO'))
.content(res(err.data.message))
.ok(res('COMUM_OK')));
showDialog = false;
$timeout(function () {
showDialog = true;
}, 30000);
}
}
});
return deferred.promise;
}
/**
* @method atualizar
* @param {*} url
* @param {*} objeto
*/
function atualizar(url, objeto) {
var deferred = $q.defer();
$http.put(API_ENDPOINT + url, objeto)
.then(function (response) {
deferred.resolve(response.data);
}, function (err) {
deferred.reject({
message: err.data,
status: err.status
});
if (showDialog) {
if (err.data.message) {
$mdDialog
.show($mdDialog.alert()
.title(res('COMUM_ERRO'))
.content(res(err.data.message))
.ok(res('COMUM_OK')));
showDialog = false;
$timeout(function () {
showDialog = true;
}, 30000);
}
}
});
return deferred.promise;
}
/**
* @method remover
* @param {*} url
*/
function remover(url) {
var deferred = $q.defer();
$http.delete(API_ENDPOINT + url)
.then(function (response) {
deferred.resolve(response.data);
}, function (err) {
deferred.reject({
message: err.data,
status: err.status
});
if (showDialog) {
if (err.data.message) {
$mdDialog
.show($mdDialog.alert()
.title(res('COMUM_ERRO'))
.content(res(err.data.message))
.ok(res('COMUM_OK')));
showDialog = false;
$timeout(function () {
showDialog = true;
}, 30000);
}
}
});
return deferred.promise;
}
return service;
}
}());