SHARE
TWEET

Untitled

a guest Oct 19th, 2014 201 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. router.post('/', function(req, res) {
  2.         console.log('Creating a new list');
  3.  
  4.         try {
  5.                 var list = JSON.parse(req.body.list);
  6.         } catch (e) {
  7.                 console.error(e);
  8.                 res.status(400).send('Could not parse request data');
  9.                 return;
  10.         }
  11.  
  12.         console.log('list', list);
  13.  
  14.         if (!list.name || list.name === '') {
  15.                 console.error('Name missing or empty');
  16.                 res.status(400).send('Name missing or empty');
  17.                 return;
  18.         }
  19.  
  20.         if (!list.users || list.users.length < 1) {
  21.                 console.error('Users missing or empty');
  22.                 res.status(400).send('Users missing or empty');
  23.                 return;
  24.         }
  25.  
  26.         if (!list.tasks) {
  27.                 console.error('Tasks missing');
  28.                 res.status(400).send('Tasks missing');
  29.                 return;
  30.         }
  31.  
  32.         var db = req.db;
  33.         var lists = db.get('lists');
  34.  
  35.         // Write list
  36.         var writtenList;
  37.         lists.insert(list, function(err, doc) {
  38.                 if (err) {
  39.                         console.log(err);
  40.                         res.status(500).send('DB write failed');
  41.                 } else {
  42.                         console.log('Inserted list', doc);
  43.                         writtenList = doc;
  44.                         var users = db.get('users');
  45.                         writtenList.users.forEach(function(v, i) {
  46.                                 console.log('Getting current lists for user', v);
  47.                                 var userLists;
  48.                                 users.find({_id: v}, function(err, docs) {
  49.                                         if (err) {
  50.                                                 console.log(err);
  51.                                                 res.status(500).send('DB read failed');
  52.                                         } else {
  53.                                                 console.log('Found docs', docs);
  54.                                                 if (docs.length !== 1) {
  55.                                                         console.error('Found too many or no users');
  56.                                                         res.status(400).send('Error while fetching user');
  57.                                                 } else {
  58.                                                         userLists = docs[0].lists;
  59.                                                         console.log('Old list array', userLists);
  60.                                                         console.log('Adding new list to user', v);
  61.                                                         userLists.push(writtenList._id);
  62.                                                         console.log('New list array', userLists);
  63.                                                         users.update({_id: v}, { $set: { 'lists': userLists } }, function(err, docs) {
  64.                                                                 if (err) {
  65.                                                                         console.error('User update failed');
  66.                                                                         res.status(500).send('User update failed');
  67.                                                                 } else {
  68.                                                                         console.log('Updated', docs);
  69.                                                                         res.jsonp(writtenList);
  70.                                                                 }
  71.                                                         });
  72.                                                 }
  73.                                         }
  74.                                 });
  75.                         });
  76.                 }
  77.         });
  78.  
  79. });
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top