.then(function (data) { if (data) { console.log(successMsg('Returned ' + data.json.length + ' contacts')) // // queue CSVs for writing var queue = new PromiseQueue() Object.keys(data.csv).forEach(function (key) { if (data.csv[key].length > 0) { console.log(statusMsg('Queueing ' + key + ' for CSV conversion')) queue.add( toCSV({data: data.csv[key]}) .then(function (csv) { csv = csv.replace(/"null"/g, '""') var filename = key + '.csv' return fs.writeFileAsync(path.join(__dirname, dataDir, filename), csv) .then(function () { console.log(alertMsg('Wrote file ' + filename)) }) }) ) } }) // queue .json file for writing var jsonFile = 'data.json' queue.add( fs.writeFileAsync(path.join(__dirname, dataDir, jsonFile), JSON.stringify(data.json, null, '\t')) .then(function () { console.log(alertMsg('Wrote file ' + jsonFile)) }) ) return queue } else { console.log(warningMsg('No rows returned...')) } })
router.post('/import', function (req, res) { var mainUserProfile = req.user.slackProfile; var users = req.body.users || []; var userSite = req.user.teamworkUserSite; var credentials = req.user.teamworkApiKey; var queue = new Queue(); var users = prepareUsers(mainUserProfile, users); var importPromises = users.map(function (user) { return importUserPromise(user, userSite, credentials); }); queue.add(importPromises); queue.start() .then(function () { res.send(true); }).catch(function () { res.send(false); }); });
jobs.forEach(function(e) { queue.add(function() { return job(e); }); });
result.forEach(function (row) { var q = [] q.push('SELECT column_name FROM information_schema.columns WHERE table_name="' + row.table_name + '"') queue.add(query(q)) })