(function () {
'use strict';
/**
* @ngdoc directives
* @name DeteccaoImpactoService
* @module s4c.directives.deteccaoImpacto.DeteccaoImpactoService
*
* @description
* `DeteccaoImpactoService` gerencia a comunicação entre o módulo Detecção
* de Impacto e o backend do S4C.
*
*/
function DeteccaoImpactoService($http, $q, API_ENDPOINT) {
/**
* Lista as categorias
*
* @method pegarListaCategorias
*
*
* @returns {Promise} Promise que resolve com a lista de categorias que
* o usuário tem acesso.
*/
function pegarListaCategorias() {
var deferred = $q.defer();
$http.get(API_ENDPOINT + 'categorias')
.then(function (res) {
if (typeof res.data === 'object') {
deferred.resolve(res.data);
} else {
deferred.reject(res);
}
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
/**
*
*
* @method pegarPathCategoria
*
* @param categoriaId {categoriaId} Identificador da categoria
*
* @returns {Promise} Promise que resolve com o resultado da busca.
*/
function pegarPathCategoria(categoriaId) {
var deferred = $q.defer();
$http.get(API_ENDPOINT + 'categorias/path/' + categoriaId)
.then(function (res) {
deferred.resolve(res.data);
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
/**
*
*
* @method capturar
*
* @param {Object} obj Um objeto contendo os dois acervos para comparar
* no backend e receber o resultado do cruzamento dos dados.
* obj: {
* categoriaId1: <Id da primeira categoria>,
* categoriaId2: <Id da segunda categoria>,
* distancia: <Distância em metros>
* }
*
* @returns {Promise} Promise que resolve com o resultado da busca.
*/
function capturar(parametros) {
var deferred = $q.defer();
$http.post(API_ENDPOINT + 'deteccao_impacto', parametros)
.then(function (res) {
if (typeof res.data === 'object') {
deferred.resolve(res.data);
} else {
deferred.reject(res);
}
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
return {
pegarListaCategorias: pegarListaCategorias,
pegarPathCategoria: pegarPathCategoria,
capturar: capturar
};
}
DeteccaoImpactoService.$inject = [
'$http',
'$q',
'API_ENDPOINT'
];
angular.module('s4c.components.deteccaoImpacto')
.service('DeteccaoImpactoService', DeteccaoImpactoService);
})();