const utils = require('../utils/utils.js'); const sql = require('../utils/sql'); const qs = require('querystring'); const Promise = require('promise'); /** * @author Jeffery Russell 6-30-18 */ /** * Processes post requests from the addDownload form * @param postData * @returns {*|Promise} */ var addDownloadPostData = function(postData) { return new Promise(function(resolve, reject) { var post = qs.parse(postData); if(post.add_download) { console.log(post); sql.addDownload(post.add_download_name, post.add_download_file).then(function() { resolve(""); }).catch(function(error) { reject(error); }) } else { resolve(""); } }); }; /** * Displays the addDownload form the the user * * @param postData * @returns {*|Promise} */ const addDownload = function(postData) { //res.write("
"); return new Promise(function(resolve, reject) { Promise.all([addDownloadPostData(postData), utils.include("./admin/addDownload.html")]).then(function(html) { console.log("add download is good"); resolve("
" + html.join('') + "
"); }).catch(function(error) { console.log(error); reject(error); }) }); }; /** * Handel form requests from the downloads table * * @param postData * @returns {*|Promise} */ const displayDownloadsPostData = function(postData) { return new Promise(function(resolve, reject) { var post = qs.parse(postData); if(post.delete_download) { } resolve(postData); }); }; /** * Renders a single download row in the downloads table * * @param download * @returns {*|Promise} */ const renderDownloadRow = function(download) { return "" + "" + download.name + "" + "" + download.file + "" + "" + download.download_count + "" + "
\n" + " \n" + ""+ "
" + ""; }; /** * Displays all the download information in a table * @param postData * @returns {*|Promise} */ const displayDownloads = function(postData) { var html = "
"; return new Promise(function(resolve, reject) { displayDownloadsPostData(postData).then(function() { html += "
" + "

Downloads

" + "
" + "" + "" + ""; sql.getAllDownloads().then(function(downloads) { var downloadPromises = []; downloads.forEach(function(download) { downloadPromises.push(renderDownloadRow(download)); }); Promise.all(downloadPromises).then(function(htmls) { var htmlafter = "
Download NameFileDownload CountDelete

" + "
"; console.log("display download is good"); resolve(html + htmls.join('') + htmlafter); }); }).catch(function(error) { console.log(error); reject(error); }); }); }); }; module.exports= { main: function(postData) { return new Promise(function(resolve, reject) { Promise.all([addDownload(postData), displayDownloads(postData)]).then(function(html) { resolve("
" + html.join('') + "
"); }).catch(function(error) { console.log("error in add downloads.js"); reject(error); }); }); } };