better error handling

This commit is contained in:
Riku Rouvila
2015-11-26 17:03:42 +02:00
parent aa59d58ba7
commit 620c957399
2 changed files with 25 additions and 4 deletions

View File

@@ -13,13 +13,17 @@ module.exports = function (app) {
app.post('/invites', function(req, res, next) {
if(!validator.isEmail(req.body.email)) {
res.status(400).send('Invalid email');
return res.status(400).send('invalid_email');
}
function success() {
res.status(200).end();
}
function alreadyInvited(email) {
res.status(400).send('already_invited');
}
slack
.createInvite(req.body.email)
.then(function() {
@@ -37,6 +41,11 @@ module.exports = function (app) {
})
.then(success)
.catch(function(err) {
if(err === 'already_invited') {
return alreadyInvited(req.body.email);
}
var message = 'Creating automatic invitation failed for: ' + req.body.email + ' reason: ' + err;
slack.createMessage(message);

View File

@@ -50,9 +50,21 @@ module.exports = {
.set('Authorization', 'token ' + config.github.token)
.end(function(error, response){
if(error) {
reject(error);
return reject(error);
}
resolve(response.body);
if(!response.body.items) {
return reject(new Error(response.body.message));
}
if(response.body.items.length === 0) {
return reject(new Error('Not Found'));
}
resolve(response.body.items[0]);
});
});
},
/**
* Invite user to organization
*/