Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- router.post('/', (req, res, next) => {
- const id = req.session.user_id,
- password = req.body.password,
- t1 = req.body.t1,
- t2 = req.body.t2;
- if (!userId) res.send({ error: 'user_id required for login' });
- getUserById(id)
- .then(user => {
- if (!user) res.send({ error: `No user found with userId ${id}` });
- if (password) user.password = password;
- const rec_1 = getFromTable(1, t1);
- const rec_2 = getFromTable(2, t2);
- const promises = [rec_1, rec_2];
- Promise.all(promises).then(() => {
- if (user.col1 !== rec_1._id) user.col1 = rec_1._id;
- if (user.col2 !== rec_2._id) user.col2 = rec_2._id;
- user.save(err => {
- if (err) res.send({ err });
- res.redirect('/settings');
- });
- });
- });
- });
- /**
- * Given an ID, retrieve a user from the DB.
- * @param {number} id - A user ID.
- */
- function getUserById(id) {
- return new Promise((resolve, reject) => {
- mongoose.model('User').findById(id, (err, user) => {
- if (err) reject(err);
- resolve(user);
- });
- });
- }
- /**
- * Given a table ID and a name, retrieve a "rec" from the DB.
- * @param {number} table - A table ID.
- * @param {string} name - A name.
- */
- function getFromTable(table, name) {
- return new Promise((resolve, reject) => {
- mongoose.model(`Table${table}`).findOne({ name }, (err, rec) => {
- if (err) reject(err);
- resolve(rec);
- });
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement