2016-06-24 00:29:55 +02:00
|
|
|
import User from '../models/user';
|
2016-06-09 02:52:59 +02:00
|
|
|
|
|
|
|
export function createUser(req, res, next) {
|
2016-06-24 00:29:55 +02:00
|
|
|
const user = new User({
|
|
|
|
username: req.body.username,
|
2016-06-09 02:52:59 +02:00
|
|
|
email: req.body.email,
|
|
|
|
password: req.body.password
|
|
|
|
});
|
|
|
|
|
2016-06-24 00:29:55 +02:00
|
|
|
User.findOne({ email: req.body.email },
|
|
|
|
(err, existingUser) => { // eslint-disable-line consistent-return
|
|
|
|
if (err) { res.status(404).send({ error: err }); }
|
2016-06-09 02:52:59 +02:00
|
|
|
|
2016-06-24 00:29:55 +02:00
|
|
|
if (existingUser) {
|
|
|
|
return res.status(422).send({ error: 'Email is in use' });
|
|
|
|
}
|
|
|
|
user.save((saveErr) => { // eslint-disable-line consistent-return
|
|
|
|
if (saveErr) { return next(saveErr); }
|
|
|
|
req.logIn(user, (loginErr) => { // eslint-disable-line consistent-return
|
|
|
|
if (loginErr) {
|
|
|
|
return next(loginErr);
|
|
|
|
}
|
|
|
|
res.json({
|
|
|
|
email: req.user.email,
|
|
|
|
username: req.user.username
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
2016-08-05 03:43:13 +02:00
|
|
|
|
|
|
|
export function updatePreferences(req, res) {
|
|
|
|
User.findByIdAndUpdate(req.user._id,
|
|
|
|
{
|
|
|
|
$set: req.body
|
|
|
|
})
|
|
|
|
.populate('preferences')
|
|
|
|
.exec((err, updatedPreferences) => {
|
|
|
|
if (err) return res.json({ success: false });
|
|
|
|
return res.json(updatedPreferences);
|
|
|
|
});
|
|
|
|
}
|