'use strict';
(function () {
/**
* @ngdoc directives
* @name Base-ConhecimentoService
* @module s4c.directives.baseConhecimento.BaseConhecimentoService
*
* @description
* `BaseConhecimentoService` gerencia a comunicação entre uma Base de
* Conhecimento no Frontend e a API do backend.
*
*/
function BaseConhecimentoService($http, $q, API_ENDPOINT) {
/**
*
*
* @method addBaseConhecimento
*
* @param {obj} obj Um objeto contendo informações sobre a
* base de conhecimento a ser salva.
*
* @returns {Promise} Promise que resolve com os dados da nova Base
* salva no banco.
*/
function addBaseConhecimento(obj) {
var deferred = $q.defer();
$http.put(API_ENDPOINT + 'base_conhecimento/', obj)
.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 updateBaseConhecimento
*
* @param {obj} BaseConhecimento objeto contendo as informações da Base
* de Conhecimento a ser atualizada.
*/
function updateBaseConhecimento(obj) {
var deferred = $q.defer();
$http.post(API_ENDPOINT + 'base_conhecimento/', obj)
.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 findById
*
* @param {integer} id o identificador unico da Base de Conhecimento a
* ser buscada na API
*
* @returns {Promise} Promise que resolve com os dados da Base de
* Conhecimento.
*/
function findById(id) {
var deferred = $q.defer();
$http.get(API_ENDPOINT + 'base_conhecimento/' + 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 findAllTypes
*/
function findAllTypes() {
var deferred = $q.defer();
$http.get(API_ENDPOINT + 'tipo_base/')
.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 findAndDelete
* @param {*} id
*/
function findAndDelete(id) {
var deferred = $q.defer();
$http.delete(API_ENDPOINT + 'base_conhecimento/' + id)
.then(function (res) {
deferred.resolve(res.data);
}, 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;
}
return {
findById: findById,
addBaseConhecimento: addBaseConhecimento,
updateBaseConhecimento: updateBaseConhecimento,
findAndDelete: findAndDelete,
getAttachedFile: getAttachedFile,
findAllTypes: findAllTypes
};
}
BaseConhecimentoService.$inject = [
'$http',
'$q',
'API_ENDPOINT'
];
angular.module('s4c.components.baseConhecimento')
.service('BaseConhecimentoService', BaseConhecimentoService);
})();