/**
* @ngdoc service
* @name Camera
* @module s4c.services.Camera
*
* @description Componente para acesso a api do backend e/ou comunicação entre controllers
*
*
*/
(function () {
angular
.module('s4c.services')
.factory('Camera', Camera);
Camera.$inject = ['Base', '$q']
/**
* @method Camera
* @param {*} Base
* @param {*} id
*/
function Camera(Base, $q) {
var service = {
obterPorId: obterPorId,
obterTodas: obterTodas,
obterCamerasPorCategoria: obterCamerasPorCategoria
};
/**
* @method obterPorId
* @param {*} id
*/
function obterPorId(id) {
return Base.obter('cameras/' + id);
}
/**
* @method obterTodas
*/
function obterTodas() {
return Base.obter('categoria_camera')
.then(function (categorias) {
var promissesArray = [];
_.each(categorias, function (categoria) {
promissesArray.push(Base.obter('cameras/categoria/' + categoria.id + '/geojson'));
});
return $q.all(promissesArray)
.then(function (result) {
var featuresArray = [];
_.each(result, function (res) {
featuresArray.push(res.features);
})
return _.flatten(featuresArray);
});
});
}
/**
* @method obterCamerasPorCategoria
* @param {*} categoria
*/
function obterCamerasPorCategoria(categorias) {
return Base.salvar('cameras/categorias/', categorias); //Usei post pois preciso passar um array de parametros e o Spring não está aceitando via GET.
}
return service;
}
}());