summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorprzemyslawpluta <przemekpluta@hotmail.com>2015-08-07 11:58:05 +0100
committerprzemyslawpluta <przemekpluta@hotmail.com>2015-08-07 11:58:05 +0100
commitd765f685542c937ad2bde64ac237034083d06106 (patch)
tree6e0b444794a782f0d50ab64a05f85e4b76cc79ae
parent01313a61ef31628cbb4abd0d5a3c9cc78a8b893a (diff)
downloadmongo-edu-d765f685542c937ad2bde64ac237034083d06106.zip
better error handling
-rw-r--r--lib/login.js25
-rw-r--r--package.json1
2 files changed, 19 insertions, 7 deletions
diff --git a/lib/login.js b/lib/login.js
index 6da23b7..29ab9a3 100644
--- a/lib/login.js
+++ b/lib/login.js
@@ -11,9 +11,11 @@ var request = require('request'),
ProgressBar = require('progress'),
_ = require('lodash'),
videoHandler = require('./videos'),
+ PrettyError = require('pretty-error'),
coursewareHandler = require('./courseware');
-var jar = request.jar(), host = 'https://university.mongodb.com', xcsrftoken = {};
+var jar = request.jar(), host = 'https://university.mongodb.com',
+ pe = new PrettyError(), xcsrftoken = {};
function addCookies(cookies, url) {
@@ -48,7 +50,7 @@ module.exports = {
if (res.statusCode === 200) {
var status = JSON.parse(body);
- if (status.success !== true) { return callback(new Error(status.value)); }
+ if (status.success !== true) { return console.log('i'.red + ' ' + status.value + '\n'); }
bar.tick();
@@ -56,7 +58,7 @@ module.exports = {
}
- callback(new Error(res.statusCode));
+ callback(pe.render(new Error(res.statusCode)));
});
},
@@ -64,7 +66,9 @@ module.exports = {
checkProfile = function checkProfile(bar) {
request({ url: url + '/edit_profile', jar: jar }, function get(err, res, body) {
if (err !== null) { return callback(err, null); }
+
bar.tick();
+
if (res.statusCode === 200) {
bar.tick();
@@ -84,6 +88,8 @@ module.exports = {
return checkCourses(bar, currentProfile);
}
+
+ callback(pe.render(new Error(res.statusCode)));
});
},
@@ -115,9 +121,11 @@ module.exports = {
if (noCourses) { currentProfile.noCourses = noCourses.trim().split('\n').map(function items(item) { return item.replace(/ +/g, ' '); }).join('') + ' at ' + url + findNewCourses + '.\n'; }
- callback(null, list, currentProfile);
+ return callback(null, list, currentProfile);
}
+ callback(pe.render(new Error(res.statusCode)));
+
});
};
@@ -135,7 +143,7 @@ module.exports = {
}
- callback(new Error(res.statusCode));
+ callback(pe.render(new Error(res.statusCode)));
});
},
@@ -187,6 +195,8 @@ module.exports = {
}
+ callback(pe.render(new Error(res.statusCode)));
+
});
},
@@ -224,7 +234,7 @@ module.exports = {
return callback(null, videos);
}
- callback(new Error(res.statusCode));
+ callback(pe.render(new Error(res.statusCode)));
});
},
@@ -259,7 +269,8 @@ module.exports = {
}, function post(err, res, body) {
if (err !== null) { return callback(err, null); }
- if (res.statusCode === 200) { callback(null, JSON.parse(body)); }
+ if (res.statusCode === 200) { return callback(null, JSON.parse(body)); }
+ callback(pe.render(new Error(res.statusCode)));
});
}
diff --git a/package.json b/package.json
index 250c5db..9f8c660 100644
--- a/package.json
+++ b/package.json
@@ -40,6 +40,7 @@
"mkdirp": "~0.5.1",
"mv": "~2.1.1",
"path-extra": "~1.0.3",
+ "pretty-error": "^1.1.2",
"progress": "~1.1.8",
"request": "~2.60.0",
"request-progress": "~0.3.1",