Source: directives/rotas-olimpicas/rotas-olimpicas.service.js

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

    function RotasOlimpicasService($http, $q, API_ENDPOINT, Base) {

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

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

            return deferred.promise;
        }

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

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

            return deferred.promise;
        }

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

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

            return deferred.promise;
        }

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

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

            return deferred.promise;
        }

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

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

            return deferred.promise;
        }

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

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

            return deferred.promise;
        }

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

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

            return deferred.promise;
        }

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

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

            return deferred.promise;
        }

        return {
            pegarRotas: pegarRotas,
            pegarShape: pegarShape,
            pegarIncidentes: pegarIncidentes,
            pegarDetalhamento: pegarDetalhamento,
            detalhamentoUpdate: detalhamentoUpdate,
            pegarIncidentesProximos: pegarIncidentesProximos,
            pegarCamerasProximas: pegarCamerasProximas,
            pegarRotasProximas: pegarRotasProximas
        };
    }

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

    angular.module('s4c.components.rotas-olimpicas')
        .service('RotasOlimpicasService', RotasOlimpicasService);
})();