p5.js-web-editor/server/controllers/user.controller.js

43 lines
1.1 KiB
JavaScript
Raw Normal View History

2016-06-24 00:29:55 +02:00
import User from '../models/user';
export function createUser(req, res, next) {
2016-06-24 00:29:55 +02:00
const user = new User({
username: req.body.username,
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-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
});
});
});
});
}
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);
});
}