function fetchRecords(email, ip) { return P.all( [ // get records and ignore errors by returning a new record mc.getAsync(email).then(EmailRecord.parse, EmailRecord.parse), mc.getAsync(ip).then(IpRecord.parse, IpRecord.parse), mc.getAsync(ip + email).then(IpEmailRecord.parse, IpEmailRecord.parse) ] ) }
function (req, res, next) { var email = req.body.email if (!email) { var err = {code: 'MissingParameters', message: 'email is required'} log.error({ op: 'request.passwordReset', email: email, err: err }) res.send(400, err) return next() } email = normalizedEmail(email) mc.getAsync(email) .then(EmailRecord.parse, EmailRecord.parse) .then( function (emailRecord) { emailRecord.passwordReset() return mc.setAsync(email, emailRecord, LIFETIME).catch(ignore) } ) .then( function () { log.info({ op: 'request.passwordReset', email: email }) res.send({}) }, function (err) { log.error({ op: 'request.passwordReset', email: email, err: err }) res.send(500, err) } ) .done(next, next) }