@speakr/speakr-module-services
Version:
SPEAKR Shared Service Module
69 lines (62 loc) • 1.74 kB
JavaScript
;
const db = require('../../db/');
module.exports = {
byId,
byEmailOrUsername,
byIdHash,
byResetPasswordToken
};
function byResetPasswordToken(options) {
return db.users.findOne({ where : {
reset_password_token: options.reset_password_token,
reset_password_sent_at: {$gt: Date.now()
}}})
.then((users) => {
if(!!users) {
options.users = users;
return Promise.resolve(options);
} else {
return Promise.reject('User not found, or reset token has expired.');
}
});
}
function byId(options) {
let where = { id: options.user.network_id };
return db.users.findOne({where})
.then((users) => {
delete options.user.network_id;
if(!!users) {
options.user = users;
return Promise.resolve(options);
} else {
return Promise.resolve(options);
}
});
}
function byEmailOrUsername(options) {
return db.users.findOne({where: { $or: [{ email: options.params.email }, { username: options.params.email} ]}})
.then((users) => {
if (!users) {
return Promise.reject({
code: 500,
section: '/feature/user/read/byEmail',
message: 'email does not exist'
});
} else {
options.users = users;
return Promise.resolve(options);
}
});
}
function byIdHash(options) {
const id_hash = options.req.headers.user_id_hash ||
options.req.params.user_hash;
const where = { id_hash };
return db.users.findOne({
where
}).then(users => {
if(!users) throw new Error(`Couldn't find user with id_hash :: ${id_hash}`)
options.users = users;
return Promise.resolve(options)
}).catch(err => Promise.reject(err))
}