Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- router.post('/', function(req, res) {
- console.log('Creating a new list');
- try {
- var list = JSON.parse(req.body.list);
- } catch (e) {
- console.error(e);
- res.status(400).send('Could not parse request data');
- return;
- }
- console.log('list', list);
- if (!list.name || list.name === '') {
- console.error('Name missing or empty');
- res.status(400).send('Name missing or empty');
- return;
- }
- if (!list.users || list.users.length < 1) {
- console.error('Users missing or empty');
- res.status(400).send('Users missing or empty');
- return;
- }
- if (!list.tasks) {
- console.error('Tasks missing');
- res.status(400).send('Tasks missing');
- return;
- }
- var db = req.db;
- var lists = db.get('lists');
- // Write list
- var writtenList;
- lists.insert(list, function(err, doc) {
- if (err) {
- console.log(err);
- res.status(500).send('DB write failed');
- } else {
- console.log('Inserted list', doc);
- writtenList = doc;
- var users = db.get('users');
- writtenList.users.forEach(function(v, i) {
- console.log('Getting current lists for user', v);
- var userLists;
- users.find({_id: v}, function(err, docs) {
- if (err) {
- console.log(err);
- res.status(500).send('DB read failed');
- } else {
- console.log('Found docs', docs);
- if (docs.length !== 1) {
- console.error('Found too many or no users');
- res.status(400).send('Error while fetching user');
- } else {
- userLists = docs[0].lists;
- console.log('Old list array', userLists);
- console.log('Adding new list to user', v);
- userLists.push(writtenList._id);
- console.log('New list array', userLists);
- users.update({_id: v}, { $set: { 'lists': userLists } }, function(err, docs) {
- if (err) {
- console.error('User update failed');
- res.status(500).send('User update failed');
- } else {
- console.log('Updated', docs);
- res.jsonp(writtenList);
- }
- });
- }
- }
- });
- });
- }
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement