/**
* @ngdoc service
* @name s4c.services.Perfil
* @module s4c.services
*
* @description Componente para acesso a api do backend e/ou comunicação entre controllers
*
*
*/
'use strict';
(function () {
/**
* @method Perfil
* @param {*} $resource
* @param {*} $q
* @param {*} API_ENDPOINT
* @param {*} $http
*/
function Perfil($resource, API_ENDPOINT, $q, $http) {
/**
* @method crud
*/
function crud() {
return $resource(API_ENDPOINT + 'perfil/:id', { id: '@id' }, {
save: { method: 'PUT' },
delete: { method: 'DELETE' }
});
}
var self = this;
self.perfis = undefined;
self.canLoad = true;
self.p = $q.defer();
/**
* @method getPerfis
*/
function getPerfis() {
if (self.perfis || !self.canLoad) {
return self.p.promise;
}
self.canLoad = false;
$http.get(API_ENDPOINT + 'perfil')
.then(function (response) {
if (typeof response.data === 'object') {
self.canLoad = true;
self.perfis = response.data;
self.p.resolve(response.data);
} else {
self.p.reject(response);
}
}, function (err) {
self.p.reject(err);
});
return self.p.promise;
}
return {
crud: crud,
getPerfis: getPerfis
};
}
angular.module('s4c.services.Perfil', [])
.factory('Perfil', Perfil);
Perfil.$inject = ['$resource', 'API_ENDPOINT', '$q', '$http'];
}());