angular.module('focaAbmVehiculo') .factory('focaAbmVehiculoService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT) { var cisternas = []; var cisternasPristine = true; return { getVehiculos: function() { return $http.get(API_ENDPOINT.URL + '/vehiculo'); }, getVehiculo: function(id) { return $http.get(API_ENDPOINT.URL + '/vehiculo/' + id); }, getTransportistas: function() { return $http.get(API_ENDPOINT.URL + '/transportista'); }, guardarVehiculo: function(vehiculo) { return $http.post(API_ENDPOINT.URL + '/vehiculo', {vehiculo: vehiculo}); }, deleteVehiculo: function(id) { return $http.delete(API_ENDPOINT.URL + '/vehiculo/' + id); }, getCisternas: function(idVehiculo) { cisternasPristine = true; return new Promise(function(resolve) { $http.get(API_ENDPOINT.URL + '/cisterna/listar/' + idVehiculo) .then(function(res) { cisternas = res.data; resolve(res.data); }); }); }, guardarCisterna: function(cisterna, idx) { if (idx !== '-1') { //update cisternas[idx] = cisterna; cisternasPristine = false; } else { //insert cisternas.push(cisterna); cisternasPristine = false; } }, guardarCisternas: function(cisternas) { return $http.post(API_ENDPOINT.URL + '/cisterna', {cisternas: cisternas}); }, deleteCisterna: function(cisterna) { cisterna.desactivado = true; cisternasPristine = false; return $http.delete(API_ENDPOINT.URL + '/cisterna/' + cisterna.id); }, cleanCisternas: function() { cisternas = []; }, getVehiculosPorTransportista: function(id) { return $http.get(API_ENDPOINT.URL + '/vehiculo/transportista/' + id); }, getTransportistaPorId: function(id) { return $http.get(API_ENDPOINT.URL + '/transportista/' + id); }, transportistaSeleccionado: {} }; }]);