Source: services/FileService.js

    /**
     * @ngdoc service
     * @name FileService
     * @module s4c.services.FileService
     * 
     * @description  Componente para acesso a api do backend e/ou comunicação entre controllers
     * 
     *
     */
    
(function () {
    angular.module('s4c.services')
        .factory('FileService', FileService);

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

   /**	
	* @method FileService
	* @param {*} $http
	* @param {*} $q
	* @param {*} Base
	* @param {*} API_ENDPOINT
	*/
    function FileService(Base, $q, $http, API_ENDPOINT) {
        var service = {
            downloadFile: downloadFile,
            addFile: addFile,
            deleteFile: deleteFile
        };

  		/**	
		* @method addFile
		* @param {*} tipo
		* @param {*} arquivo
		*/
        function addFile(tipo, arquivo) {
            return Base.salvar('filemanager/addarquivo/' + tipo, arquivo);
        }

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

            $http
                .get(API_ENDPOINT + 'filemanager/' + id, { responseType: 'arraybuffer' })
                .then(function (res) {
                    deferred.resolve(res.data);
                }, function (err) {
                    deferred.reject(err);
                });

            return deferred.promise;
        }

  		/**	
		* @method deleteFile
		* @param {*} id
		*/
        function deleteFile(id) {
            return Base.remover('filemanager/' + id);
        }

        return service;
    }
}());