Source: directives/terminal/terminal.service.js

/**
 * @ngdoc directives
 * @name TerminalService
 * @module s4c.directives.terminal.TerminalService
 *
 * @description
 * `TerminalService` Componente para acesso a api do backend e/ou comunicação entre controllers
 * 
 * 
 */
(function () {
    'use strict';

    angular.module('s4c.components.terminal')
        .service('TerminalService', TerminalService);

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


    function TerminalService($http, $q, API_ENDPOINT, $rootScope) {

        var appElement = document.querySelector('[ng-app=s4CApp]');
        var appScope = angular.element(appElement).scope();
        var mainController = appScope.$$childHead;

        var service = {
            pegarTerminal: pegarTerminal,
            pegarTarefas: pegarTarefas
        };

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

            $http.get(API_ENDPOINT + 'pois/' + id)
                .then(function (res) {

                    if (typeof res.data === 'object') {
                        deferred.resolve(res.data);
                    } else {
                        deferred.reject();
                    }

                }, function (err) {
                    deferred.reject(err);
                });

            return deferred.promise;
        }

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

            $http.get(API_ENDPOINT + 'tarefas/usuario/imei/' + imei)
                .then(function (res) {

                    if (typeof res.data === 'object') {
                        deferred.resolve(res.data);
                    } else {
                        deferred.reject();
                    }

                }, function (err) {
                    deferred.reject(err);
                });

            return deferred.promise;
        }

        return service;
    }
}());