Source: services/RotaService.js

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

(function () {

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

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

            $http.get(API_ENDPOINT + 'acervos')
                .then(function (res) {
                    if (typeof res.data === 'object') {
                        deferred.resolve(res.data);
                    } else {
                        deferred.reject();
                    }
                }, function (err) {
                    deferred.reject(err);
                });

            return deferred.promise;
        }

        /**
         *
		 * @param salvarRota
         * @param {obj} obj objeto contendo informações da Rota
         *
         * @returns {Promise} Promise que resolve contendo um objeto com a nova
         * rota salva no banco.
         */
        function salvarRota(obj) {
            var deferred = $q.defer();

            $http.put(API_ENDPOINT + 'rotas', obj)
                .then(function (res) {
                    if (typeof res.data === 'object') {
                        deferred.resolve(res.data);
                    } else {
                        deferred.reject();
                    }
                }, function (err) {
                    deferred.reject(err);
                });

            return deferred.promise;
        }

  	   /**	
		* @method updateRota
		*
		* @param {obj} objeto contendo informações da Rota
        * @returns {Promise} Promise que resolve contendo um objeto com a nova
        * rota salva no banco.
		*/
        function updateRota(obj) {
            var deferred = $q.defer();

            $http.post(API_ENDPOINT + 'rotas', obj)
                .then(function (res) {
                    if (typeof res.data === 'object') {
                        deferred.resolve(res.data);
                    } else {
                        deferred.reject();
                    }
                }, function (err) {
                    deferred.reject(err);
                });

            return deferred.promise;
        }

        return {
            pegarAcervos: pegarAcervos,
            updateRota: updateRota,
            salvarRota: salvarRota
        };

    }

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

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