/**
* @ngdoc directives
* @name PlanejamentoService
* @module s4c.directives.planejamento.PlanejamentoService
*
* @description
* `PlanejamentoService` Componente para acesso a api do backend e/ou comunicação entre controllers
*
*
*/
(function () {
'use strict';
function PlanejamentoService($http, $q, API_ENDPOINT, Base) {
return {
salvarPlanejamento: salvarPlanejamento,
enviarPlanejamento: enviarPlanejamento,
salvarCamada: salvarCamada,
getPlanejamento: getPlanejamento,
getPlanejamentoGeoJSON: getPlanejamentoGeoJSON,
searchUsuarioByName: searchUsuarioByName,
searchDepartamentoByName: searchDepartamentoByName,
findAndDelete: findAndDelete,
searchCategoriaByName: searchCategoriaByName,
searchAcervoByName: searchAcervoByName,
removerCamada: removerCamada,
getAttachedFile: getAttachedFile
};
/**
* @method getPlanejamento
* @param {*} id
*/
function getPlanejamento(id) {
var deferred = $q.defer();
$http.get(API_ENDPOINT + 'planejamento/' + id)
.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 getPlanejamentoGeoJSON
* @param {*} id
*/
function getPlanejamentoGeoJSON(id) {
var deferred = $q.defer();
$http.get(API_ENDPOINT + 'planejamento/' + id + '/geojson')
.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 salvarPlanejamento
* @param {*} data
*/
function salvarPlanejamento(data) {
var deferred = $q.defer();
if (data.id) {
$http.post(API_ENDPOINT + 'planejamento/' + data.id, data)
.then(function (res) {
if (typeof res.data === 'object') {
deferred.resolve(res.data);
} else {
deferred.reject(res);
}
}, function (err) {
deferred.reject(err);
});
} else {
$http.put(API_ENDPOINT + 'planejamento', data)
.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 enviarPlanejamento
* @param {*} data
*/
function enviarPlanejamento(data) {
var deferred = $q.defer();
$http.post(API_ENDPOINT + 'planejamento/enviar/' + data.id, data)
.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 salvarCamada
* @param {*} data
*/
function salvarCamada(data) {
var deferred = $q.defer();
if (data.id) {
$http.post(API_ENDPOINT + 'camadas/' + data.id, data)
.then(function (res) {
if (typeof res.data === 'object') {
deferred.resolve(res.data);
} else {
deferred.reject(res);
}
}, function (err) {
deferred.reject(err);
});
} else {
$http.post(API_ENDPOINT + 'planejamento/camada/' + data.PlanejamentoId, data)
.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 searchDepartamentoByName
* @param {*} searchTerm
*/
function searchDepartamentoByName(searchTerm) {
var deferred = $q.defer();
$http.get(API_ENDPOINT + 'departamentos/find/' + searchTerm)
.then(function (res) {
if (typeof res.data === 'object') {
deferred.resolve(res.data);
} else {
deferred.reject(err);
}
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
/**
* @method searchUsuarioByName
* @param {*} searchTerm
*/
function searchUsuarioByName(searchTerm) {
var deferred = $q.defer();
$http.get(API_ENDPOINT + 'usuarios/find/' + searchTerm)
.then(function (res) {
if (typeof res.data === 'object') {
deferred.resolve(res.data);
} else {
deferred.reject(err);
}
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
/**
* @method findAndDelete
* @param {*} id
*/
function findAndDelete(id) {
var deferred = $q.defer();
$http.delete(API_ENDPOINT + 'planejamento/' + id)
.then(function (res) {
deferred.resolve(res.data);
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
/**
* @method searchCategoriaByName
* @param {*} searchTerm
*/
function searchCategoriaByName(searchTerm) {
var deferred = $q.defer();
$http.get(API_ENDPOINT + 'categorias/find/' + searchTerm)
.then(function (res) {
if (typeof res.data === 'object') {
deferred.resolve(res.data);
} else {
deferred.reject(err);
}
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
/**
* @method searchAcervoByName
* @param {*} searchTerm
*/
function searchAcervoByName(searchTerm) {
var deferred = $q.defer();
$http.get(API_ENDPOINT + 'acervos/find/' + searchTerm)
.then(function (res) {
if (typeof res.data === 'object') {
deferred.resolve(res.data);
} else {
deferred.reject(err);
}
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
/**
* @method getAttachedFile
* @param {*} id
*/
function getAttachedFile(id) {
var deferred = $q.defer();
$http
.get(API_ENDPOINT + 'filemanager/' + id, { responseType: 'arraybuffer' })
.then(function (res) {
deferred.resolve(res.data);
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
/**
* @method removerCamada
* @param {*} id
*/
function removerCamada(id) {
return Base.remover('planejamento/camadas/' + id);
}
}
PlanejamentoService.$inject = ['$http', '$q', 'API_ENDPOINT', 'Base'];
angular.module('s4c.components.planejamento')
.service('PlanejamentoService', PlanejamentoService);
})();