Advertisement
Guest User

Untitled

a guest
Jan 14th, 2017
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. router.post('/', (req, res, next) => {
  2.     const id = req.session.user_id,
  3.         password = req.body.password,
  4.         t1 = req.body.t1,
  5.         t2 = req.body.t2;
  6.  
  7.     if (!userId) res.send({ error: 'user_id required for login' });
  8.    
  9.     getUserById(id)
  10.         .then(user => {
  11.             if (!user) res.send({ error: `No user found with userId ${id}` });
  12.             if (password) user.password = password;
  13.            
  14.             const rec_1 = getFromTable(1, t1);
  15.             const rec_2 = getFromTable(2, t2);
  16.             const promises = [rec_1, rec_2];
  17.  
  18.             Promise.all(promises).then(() => {
  19.                 if (user.col1 !== rec_1._id) user.col1 = rec_1._id;
  20.                 if (user.col2 !== rec_2._id) user.col2 = rec_2._id;
  21.  
  22.                 user.save(err => {
  23.                     if (err) res.send({ err });
  24.                     res.redirect('/settings');
  25.                 });
  26.             });
  27.         });
  28. });
  29.  
  30. /**
  31.  * Given an ID, retrieve a user from the DB.
  32.  * @param {number} id - A user ID.
  33.  */
  34. function getUserById(id) {
  35.     return new Promise((resolve, reject) => {
  36.         mongoose.model('User').findById(id, (err, user) => {
  37.             if (err) reject(err);
  38.             resolve(user);
  39.         });
  40.     });
  41. }
  42.  
  43. /**
  44.  * Given a table ID and a name, retrieve a "rec" from the DB.
  45.  * @param {number} table - A table ID.
  46.  * @param {string} name - A name.
  47.  */
  48. function getFromTable(table, name) {
  49.     return new Promise((resolve, reject) => {
  50.         mongoose.model(`Table${table}`).findOne({ name }, (err, rec) => {
  51.             if (err) reject(err);
  52.             resolve(rec);
  53.         });
  54.     });
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement