Source: directives/barra-busca/barra-busca.service.js

/**
 * @ngdoc directives
 * @name BarraBuscaService
 * @module s4c.directives.barra-busca.BarraBuscaService
 *
 * @description
 * `BarraBuscaService` gerencia a comunicação da Barra de Busca com a API de
 * buscas do backend do S4C.
 *
 */
(function () {
    'use strict';

    function BarraBuscaService($http, $q, API_ENDPOINT) {

        /**
         *
         * Obtem base de conhecimento
         *
         * @method getBaseConhecimento
         *
         * @param data {obj} critérios de busca para filtrar na busca por bases
         * de conhecimento
         *
         * @returns {Promise} Promise que resolve com os resultados.
         */
        function getBaseConhecimento(data) {
            var deferred = $q.defer();

            var url = API_ENDPOINT + 'baseconhecimento/find/' + data.texto;

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

            return deferred.promise;
        }

        /**
         *
         * Obtem sensores
         *
         * @method getSensores
         *
         *
         * @returns {Promise} Promise que resolve com os resultados.
         */
        function getSensores() {
            var deferred = $q.defer();

            var url = API_ENDPOINT + 'menuCamada/sensores';

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

            return deferred.promise;
        }

        return {
            getBaseConhecimento: getBaseConhecimento,
            getSensores: getSensores
        };
    }

    angular.module('s4c.components.busca')
        .service('BarraBuscaService', BarraBuscaService);

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

})();