Source: services/Alarme.js

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

(function () {
	
   /**	
	* @method Alarme
	* @param {*} $http
	* @param {*} $q
	* @param {*} API_ENDPOINT
	*/
    function Alarme($http, $q, API_ENDPOINT) {
        var service = {
            save: save,
            remove: remove,
            query: query,
            queryAdminastracao: queryAdminastracao
        };

  	   /**	
		* @method save
		* @param {*} alarme
		*/
        function save(alarme) {
            var deferred = $q.defer();

            if (!alarme.id) {
                $http.put(API_ENDPOINT + 'alarme', alarme)
                    .then(function (response) {
                        deferred.resolve(response.data);
                    }, function (err) {
                        deferred.resolve(err);
                    });
            } else {
                $http.put(API_ENDPOINT + 'alarme/' + alarme.id, alarme)
                    .then(function (response) {
                        deferred.resolve(response.data);
                    }, function (err) {
                        deferred.resolve(err);
                    });
            }

            return deferred.promise;
        }

  	   /**	
		* @method remove
		* @param {*} alarme
		*/
        function remove(alarme) {
            var deferred = $q.defer();

            $http.delete(API_ENDPOINT + 'alarme/' + alarme.id)
                .then(function (response) {
                    deferred.resolve(response.data);
                }, function (err) {
                    deferred.resolve(err);
                });

            return deferred.promise;
        }

  	   /**	
		* @method query
		*/
        function query() {
            var deferred = $q.defer();

            $http.get(API_ENDPOINT + 'alarme')
                .then(function (response) {
                    deferred.resolve(response.data);
                }, function (err) {
                    deferred.resolve(err);
                });

            return deferred.promise;
        }

  	   /**	
		* @method queryAdminastracao
		*/
        function queryAdminastracao() {
            var deferred = $q.defer();

            $http.get(API_ENDPOINT + 'alarme/adminstracao')
                .then(function (response) {
                    deferred.resolve(response.data);
                }, function (err) {
                    deferred.resolve(err);
                });

            return deferred.promise;
        }

        return service;
    }

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

    Alarme.$inject = ['$http', '$q', 'API_ENDPOINT'];
}());