UNPKG

wunderline

Version:
73 lines (69 loc) 1.9 kB
var async = require("async"); var api = require("./api"); module.exports = function(cb) { async.waterfall( [ function(callback) { api("/lists", function(err, res, body) { if (err || body.error) { console.error(JSON.stringify(err || body.error, null, 2)); process.exit(1); } callback(err, body); }); }, function(lists, callback) { var listsWithTasks = []; async.eachLimit( lists, 10, function(list, done) { async.parallel( [ function(cb) { api({ url: "/tasks", qs: { list_id: list.id } }, function( err, res, body ) { if (err) process.exit(1); list.tasks = body; cb(); }); }, function(cb) { api({ url: "/subtasks", qs: { list_id: list.id } }, function( err, res, body ) { if (err) process.exit(1); list.subtasks = body; cb(); }); } ], function(err, results) { if (err) process.exit(1); listsWithTasks.push(list); done(); } ); }, function(err) { if (err) process.exit(1); callback(null, listsWithTasks); } ); } ], function(err, lists) { lists.sort(function(a, b) { if (a.list_type === "inbox") return -1; if (b.list_type === "inbox") return 1; return a.title > b.title; }); cb(err, lists); } ); };