Code coverage report for lib/services/trello.js

Statements: 100% (15 / 15)      Branches: 100% (0 / 0)      Functions: 100% (5 / 5)      Lines: 100% (15 / 15)     

All files » lib/services/ » trello.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50              1             1 1       1   1       1 1   1 1       1 1 2 2 2                     1  
// See http://github.com/adunkman/node-trello/
//
// https://trello.com/1/authorize?key=substitutewithyourapplicationkey&name=My+Application&expiration=never&response_type=token
// https://trello.com/1/appKey/generate
//
// TODO: support organizations backup?
 
var Trello = require("node-trello"),
    mkdirp = require('mkdirp'),
    path = require('path'),
    fs = require('fs'),
    async = require('async');
 
 
module.exports = function(service) {
   var t = new module.exports.Trello(service.config.key,
                                     service.config.token),
       boards_dir = path.resolve(service.directory, 'boards');
 
   mkdirp.sync(boards_dir);
 
   t.get("/1/members/me/boards", function(err, boards) {
     // TODO: we should probably boil here  
     //if (err) throw err;
 
     async.each(boards, function(board, cb) {
       var board_dir = path.resolve(boards_dir, board.id), 
           cards_dir = path.resolve(board_dir, "cards"); 
       mkdirp.sync(board_dir);
       fs.writeFile(path.resolve(board_dir, "info.json"),
                    JSON.stringify(board, null, "  ")
                    );
 
       t.get("/1/boards/" + board.id + "/cards", function(err, cards) {
         async.each(cards, function(card, cb) {
           var card_dir = path.resolve(cards_dir, card.id); 
           mkdirp.sync(card_dir);
           fs.writeFile(path.resolve(card_dir, "info.json"),
                        JSON.stringify(card, null, "  ")
                        );
         });
       });
     });
   });
 
};
 
 
module.exports.Trello = Trello;  // testing helper