Skip to content

Instantly share code, notes, and snippets.

@aheuermann
Forked from anshdivu/api_handler_using_null.js
Last active March 31, 2016 01:36
Show Gist options
  • Select an option

  • Save aheuermann/0f603776db40ab087fa24741aa5d941c to your computer and use it in GitHub Desktop.

Select an option

Save aheuermann/0f603776db40ab087fa24741aa5d941c to your computer and use it in GitHub Desktop.
function checkEmail_withNull(emailAddress) {
return facade.user.getUserByEmailAddress(emailAddress).chain(function (user) {
if (!user) {
return {available: true};
} else {
return facade.user.isUserAnInvitedTaker(user);
}
}).chain(function (isInvited) {
return isInvited ? {invited: true} : {available: false}
}).chain(res.handler.successHandler(), res.handler.errorHandler(errors.UNKNOWN_ERROR));
}
function checkEmail_withReject(emailAddress) {
return facade.user.getUserByEmailAddress(emailAddress).chain(function (user) {
return facade.user.isUserAnInvitedTaker(user);
}, function(err) {
if (err.isNotFound()) {
return {available: true};
} else {
return comb.rejected(errors.UNKNOWN_ERROR);
}
}).chain(function (isInvited) {
return isInvited ? {invited: true} : {available: false}
}).chain(res.handler.successHandler(), res.handler.errorHandler());
}
function getUserByEmailAddress(email) {
return User.first({emailAddress: email}).chain(function(user) {
if (!user) {
return ErrorPromises.NotFound(`No user found for emailAddress = ${email}`)
}
return user;
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment