Source: components/admin/controllers/moderacao_alertas_telegram.controllers.js

/**
 * @ngdoc controllers
 * @name ModeracaoAlertasTelegram
 * @module s4c.components.admin.controllers.ModeracaoAlertasTelegram
 *
 * @description
 * `ModeracaoAlertasTelegramCtrl` Controller da tela de Moderação de Alertas do Telegram do módulo de administração
 * 
 * 
 */
(function () {
    'use strict';

    function ModeracaoAlertasTelegramCtrl($scope, $http, $window, API_ENDPOINT) {

        angular.extend($scope, {
            setStatus: setStatus
        });

        
        /**
         * @method loadAlertas 
         */
        function loadAlertas() {
            var token = $window.sessionStorage.getItem('s4cToken');
            var options = {
                url: API_ENDPOINT + 'mensageria_externa/moderacao_telegram?key=broadcaster.medalhas.pendentes',
                method: 'GET',
                header: { 'Content-Type': 'application/json; charset=UTF-8' }
            };

            $http(options).then(function (alertas) {
                $scope.alertas = _.map(alertas.data, (alerta) => {
                    var data = JSON.parse(alerta);
                    if (data.length) {
                        return {
                            date: data[0].date,
                            newEntities: data[0].newEntities,
                            body: alerta
                        }
                    }
                });
            });
        }

        /**
         * @method setStatus
         * @param {*} body 
         * @param {*} status 
         */
        function setStatus(body, status) {
            var token = $window.sessionStorage.getItem('s4cToken');
            var options = {
                url: status ? API_ENDPOINT + 'mensageria_externa/moderacao_telegram' :
                    API_ENDPOINT + `mensageria_externa/moderacao_telegram_remove`,
                data: {
                    key: 'broadcaster.medalhas.pendentes',
                    object: body
                },
                method: 'POST',
                header: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json; charset=UTF-8' }
            };

            $http(options).then(loadAlertas);
        }

        loadAlertas();
    }

    angular.module('s4c.controllers.ModeracaoAlertasTelegramCtrl', [])
        .controller('ModeracaoAlertasTelegramCtrl', ModeracaoAlertasTelegramCtrl);

    ModeracaoAlertasTelegramCtrl.$inject = ['$scope', '$http', '$window', 'API_ENDPOINT'];

}());