/*
script to reset password for an admin
*/

var config = require('./config');
var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
var crypto = require('crypto');

var mongoose = require('mongoose');

mongoose.Promise = global.Promise;
// Connection to DB
mongoose.connect(config.database, function(err, res) {
    if (err) {
        console.log(err);
    };
    console.log('Connected to Database');
});

var userMdl = require('./models/adminModel');
var userModel = mongoose.model('adminModel');

var readlineSync = require('readline-sync');



console.log("Welcome to Common Routes");
console.log("----------");
console.log("This is the resetPassword.js");


var username = readlineSync.question('Enter the username: ');
if ((username == "")) {
  console.log("username can't be empty");
  process.exit(0);
}

console.log('Hi ' + username + '!');


var clearPassword = readlineSync.question('Enter the new password: ', {
  hideEchoBack: true // The typed text on screen is hidden by `*` (default).
});
var clearPassword2 = readlineSync.question('Enter the new password again: ', {
  hideEchoBack: true // The typed text on screen is hidden by `*` (default).
});
if (clearPassword != clearPassword2) {
  console.log("passwords don't match");
  process.exit(0);
}
if (clearPassword == "undefined") {
  console.log("Password can't be empty");
  process.exit(0);
}
/*if (clearPassword.length < 10) {
  console.log("Please, choose a password with more than 10 characters");
  process.exit(0);
}*/


var newPassword = crypto.createHash('sha256').update(clearPassword).digest('base64')
console.log(newPassword);
userModel.findOne({
    username: username
  })
  .select('+password')
  .exec(function(err, user) {
    if (err) {
      console.log(err);
      process.exit(0);
    }
    console.log(user);

    if (!user) {
      console.log("user not found");
      process.exit(0);
    } else if (user) {
      user.password = newPassword;
      user.save(function(err, user) {
        if (err) {
          console.log(err);
          process.exit(0);
        }

        console.log("password successfully changed");
        process.exit(0);
      });
    }

  });
