48 lines
991 B
JavaScript
48 lines
991 B
JavaScript
var passport = require('passport');
|
|
var User = require('../models/user');
|
|
|
|
var controller = {};
|
|
|
|
controller.list = function(req, res) {
|
|
User.find(function(err, users) {
|
|
if(err) {
|
|
res.send(err);
|
|
}
|
|
res.json(users);
|
|
});
|
|
};
|
|
|
|
controller.create = function(req, res) {
|
|
var newUser = new User({
|
|
username: req.body.username
|
|
});
|
|
User.register(
|
|
newUser, req.body.password, function(err, account) {
|
|
if(err) {
|
|
return res.status(500).json({ err: err });
|
|
}
|
|
passport.authenticate('local')(req, res, function() {
|
|
return res.status(200).json({ status: 'Registration successful!', user: newUser });
|
|
});
|
|
}
|
|
);
|
|
};
|
|
|
|
controller.read = function(req, res) {
|
|
User.findById(req.params.id)
|
|
.populate({
|
|
path: 'submissions',
|
|
populate: {
|
|
path: 'achievement'
|
|
}
|
|
})
|
|
.exec(function(err, user) {
|
|
if(err) {
|
|
res.send(err);
|
|
}
|
|
res.json(user);
|
|
});
|
|
};
|
|
|
|
module.exports = controller;
|