// load dependencies const logger = require('winston'); const db = require('../models/index'); // require our models for syncing // configure logging const config = require('../config/speechConfig.js'); const logLevel = config.logging.logLevel; require('../config/loggerConfig.js')(logger, logLevel); const userName = process.argv[2]; logger.debug('user name:', userName); const oldPassword = process.argv[3]; logger.debug('old password:', oldPassword); const newPassword = process.argv[4]; logger.debug('new password:', newPassword); db.sequelize.sync() // sync sequelize .then(() => { logger.info('finding user profile'); return db.User.findOne({ where: { userName: userName, }, }); }) .then(user => { if (!user) { throw new Error('no user found'); } return new Promise((resolve, reject) => { user.comparePassword(oldPassword, (passwordErr, isMatch) => { if (passwordErr) { return reject(passwordErr); } if (!isMatch) { return reject('Incorrect old password.'); } logger.debug('Password was a match, updating password'); return resolve(user.changePassword(newPassword)); }); }); }) .then(() => { logger.debug('Password successfully updated'); }) .catch((error) => { logger.error(error); });