import Collection from '../../models/collection'; export default function createCollection(req, res) { const owner = req.user._id; const { name, description, slug } = req.body; const values = { owner, name, description, slug }; function sendFailure({ code = 500, message = 'Something went wrong' }) { res.status(code).json({ success: false, message }); } function sendSuccess(newCollection) { res.json(newCollection); } function populateReferences(newCollection) { return Collection.populate( newCollection, [ { path: 'owner', select: ['id', 'username'] }, { path: 'items.project', select: ['id', 'name', 'slug'], populate: { path: 'user', select: ['username'] } } ] ); } if (owner == null) { sendFailure({ code: 404, message: 'No user specified' }); return null; } return Collection.create(values) .then(populateReferences) .then(sendSuccess) .catch(sendFailure); }