2019-08-31 04:07:25 +05:00
|
|
|
const bcrypt = require('bcrypt');
|
|
|
|
|
|
|
|
const Errors = {
|
|
|
|
EMAIL_NOT_EXIST: {
|
2019-11-05 18:01:42 +05:00
|
|
|
unauthorized: 'Email does not exist',
|
2019-08-31 04:07:25 +05:00
|
|
|
},
|
|
|
|
PASSWORD_NOT_VALID: {
|
2019-11-05 18:01:42 +05:00
|
|
|
unauthorized: 'Password is not valid',
|
|
|
|
},
|
2019-08-31 04:07:25 +05:00
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
inputs: {
|
|
|
|
email: {
|
|
|
|
type: 'string',
|
|
|
|
required: true,
|
2019-11-05 18:01:42 +05:00
|
|
|
isEmail: true,
|
2019-08-31 04:07:25 +05:00
|
|
|
},
|
|
|
|
password: {
|
|
|
|
type: 'string',
|
2019-11-05 18:01:42 +05:00
|
|
|
required: true,
|
|
|
|
},
|
2019-08-31 04:07:25 +05:00
|
|
|
},
|
|
|
|
|
|
|
|
exits: {
|
|
|
|
unauthorized: {
|
2019-11-05 18:01:42 +05:00
|
|
|
responseType: 'unauthorized',
|
|
|
|
},
|
2019-08-31 04:07:25 +05:00
|
|
|
},
|
|
|
|
|
2019-11-05 18:01:42 +05:00
|
|
|
async fn(inputs, exits) {
|
2019-08-31 04:07:25 +05:00
|
|
|
const user = await sails.helpers.getUser({
|
2019-11-05 18:01:42 +05:00
|
|
|
email: inputs.email.toLowerCase(),
|
2019-08-31 04:07:25 +05:00
|
|
|
});
|
|
|
|
|
|
|
|
if (!user) {
|
|
|
|
throw Errors.EMAIL_NOT_EXIST;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!bcrypt.compareSync(inputs.password, user.password)) {
|
|
|
|
throw Errors.PASSWORD_NOT_VALID;
|
|
|
|
}
|
|
|
|
|
|
|
|
return exits.success({
|
2019-11-05 18:01:42 +05:00
|
|
|
item: sails.helpers.signToken(user.id),
|
2019-08-31 04:07:25 +05:00
|
|
|
});
|
2019-11-05 18:01:42 +05:00
|
|
|
},
|
2019-08-31 04:07:25 +05:00
|
|
|
};
|