Source: services/Usuario.js

    /**
     * @ngdoc service
     * @name Usuario
     * @module s4c.services.Usuario
     * 
     * @description  Componente para acesso a api do backend e/ou comunicação entre controllers
     * 
     *
     */  
     
'use strict';

(function () {

    angular.module('s4c.services.Usuario', [])
        .factory('Usuario', Usuario);

    Usuario.$inject = ['Base'];

   /**	
	* @method Usuario
	* @param {*} Base
	*/
    function Usuario(Base) {
        var service = {
            obter: obter,
            obterShortUsers: obterShortUsers,
            obterUsuario: obterUsuario,
            obterPorId: obterPorId,
            salvar: salvar,
            atualizar: atualizar,
            remover: remover,
            removeFromProfile: removeFromProfile,
            atualizarPerfil: atualizarPerfil,
            ativar: ativar
        };

	   /**	
		* @method obter
		*/
        function obter() {
            return Base.obter('usuarios');
        }

        var self = this;
        self.promise = undefined;

	   /**	
		* @method obterShortUsers
		*/
        function obterShortUsers() {

            if (self.promise) {
                return self.promise;
            }

            self.promise = Base.obter('usuarios/adm');
            return self.promise;

        }

	   /**	
		* @method obterPorId
		* @param {*} id
		*/
        function obterPorId(id) {
            return Base.obter('usuarios/' + id);
        }

	   /**	
		* @method obterUsuario
		* @param {*} id
		*/
        function obterUsuario(id) {
            return Base.obter('usuarios/adm/' + id);
        }

	   /**	
		* @method salvar
		* @param {*} usuario
		*/
        function salvar(usuario) {
            return Base.salvar('usuarios', usuario);
        }

	   /**	
		* @method atualizar
		* @param {*} id
		* @param {*} usuario
		*/
        function atualizar(id, usuario) {
            return Base.atualizar('usuarios/' + id, usuario);
        }

	   /**	
		* @method atualizarPerfil
		* @param {*} id
		* @param {*} usuario
		*/
        function atualizarPerfil(id, usuario) {
            return Base.atualizar('usuarios/edit/' + id, usuario);
        }

	   /**	
		* @method remover
		* @param {*} id
		*/
        function remover(id) {
            return Base.remover('usuarios/' + id);
        }

	   /**	
		* @method ativar
		* @param {*} id
		*/
        function ativar(id) {
            return Base.atualizar('usuarios/ativar/' + id);
        }

	   /**	
		* @method removeFromProfile
		* @param {*} userId
		* @param {*} profileId
		*/
        function removeFromProfile(userId, profileId) {
            return Base.remover('usuarios/perfil/' + userId + '/' + profileId);
        }

        return service;
    }
}());