Source: components/resposta_briefing/resposta_briefing.controller.js

/**
 * @ngdoc resposta_briefing
 * @name RespostaBriefingCtrl
 * @module s4c.components.resposta_briefing.RespostaBriefingCtrl
 *
 * @description Controller do módulo de resposta para o Briefing
 * 
 * 
 */
(function () {
    'use strict';

    /**
     * @method RespostaBriefingCtrl
     * 
     * @param {*} $scope 
     * @param {*} $stateParams 
     * @param {*} RespostaBriefingService 
     */
    function RespostaBriefingCtrl($scope, $stateParams,
        RespostaBriefingService) {

        var respostaId = $stateParams.id;

        RespostaBriefingService.getRespostaBriefing(respostaId)
            .then(function (resposta) {

                $scope.horario_briefing = moment(parseInt(resposta.Briefing.horario, 10))
                    .format('HH:mm');
                $scope.resposta = resposta;
            });

        /**
         * @method enviarResposta
         * 
         * @param {*} conteudo 
         */
        function enviarResposta(conteudo) {
            var conteudo = $('.watwat').html();
            RespostaBriefingService.responderBriefing(respostaId, {
                resposta: conteudo
            }).then(function (resposta) {
                $scope.enviado = true;
            });
        }

        angular.extend($scope, {
            briefingValido: true,
            enviado: false,
            enviarResposta: enviarResposta,
            respostaHtml: {}
        });

    }

    /**
     * @ngdoc service
     * @name RespostaBriefingService
     * @module s4c.services.RespostaBriefingService
     *
     * @description  Componente para acesso a api do backend e/ou comunicação entre controllers
     * 
     * 
     */    
    function RespostaBriefingService($http, $q, API_ENDPOINT) {

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

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

            return deferred.promise;
        }

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

            $http.post(API_ENDPOINT + 'briefing/pergunta/' + id, resposta)
                .then(function (res) {
                    if (typeof res.data === 'object') {
                        deferred.resolve(res.data);
                    } else {
                        deferred.reject(res.data);
                    }
                });

            return deferred.promise;
        }

        return {
            responderBriefing: responderBriefing,
            getRespostaBriefing: getRespostaBriefing
        };
    }

    RespostaBriefingCtrl.$inject = [
        '$scope',
        '$stateParams',
        'RespostaBriefingService'
    ];

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

    angular.module('s4c.controllers.RespostaBriefing', [])
        .controller('RespostaBriefingCtrl', RespostaBriefingCtrl)
        .service('RespostaBriefingService', RespostaBriefingService);

}());