Source: services/Presets.service.js

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

(function () {

   /**	
	* @method PresetService
	* @param {*} $http
	* @param {*} $q
	* @param {*} API_ENDPOINT
	*/
    function PresetService($http, $q, API_ENDPOINT) {

        return {
            deletePreset: deletePreset,
            getPresets: getPresets,
            enviarCubos: enviarCubos,
            getCameras: getCameras
        };

  	   /**	
		* @method savegetPresets
		* @param {*} usuario
		*/
        function getPresets(usuario) {
            var deferred = $q.defer();

            $http.get('/api/grupos/usuario/' + usuario._id)
                .then(function (response) {
                    if (typeof response.data === 'object') {
                        deferred.resolve(response.data);
                    } else {
                        deferred.reject(response);
                    }
                }, function (err) {
                    $q.reject(err);
                });

            return deferred.promise;
        }

  	   /**	
		* @method getCameras
		*/
        function getCameras() {
            return $http.get('/api/cameras/')
                .then(function (cameras) {
                    return cameras;
                });
        }

        //function getPresets(usuario) {
        //    var p = $q.defer();
        //
        //    $http.get(API_ENDPOINT + 'presets/byuserid/' + usuario.id)
        //        .then(function(response) {
        //            if (typeof response.data === 'object') {
        //                p.resolve(response.data);
        //            } else {
        //                p.reject(response.data);
        //            }
        //        });
        //
        //    return p.promise;
        //}

  	   /**	
		* @method enviarCubos
		* @param {*} cubos
		*/
        function enviarCubos(cubos) {
            var p = $q.defer();
            $http.post(API_ENDPOINT + 'cubos/update', {
                cubos: cubos
            })
                .then(function (response) {
                    p.resolve(response.data);
                });

            return p.promise;
        }

  	   /**	
		* @method deletePreset
		* @param {*} preset
		*/
        function deletePreset(preset) {
            var p = $q.defer();

            $http.delete(API_ENDPOINT + 'presets/' + preset.id)
                .then(function (response) {
                    p.resolve(response.data);
                }, function (err) {
                    p.reject(err);
                });

            return p.promise;
        }
    }

    PresetService.$inject = ['$http', '$q', 'API_ENDPOINT'];

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

})();