var Promise = require('es6-promise').Promise;

// idea borrowed from Q.spread
Promise.prototype.spread = function(fn) {
  return this.then(function() {
    if (!arguments || arguments.length === 0) {
      return fn.apply();
    }
    return fn.apply(null, arguments[0]);
  });
};

Array.prototype.promise = function() {
  return Promise.all(this);
};

promptUser([query, newPassword])
  .then(function(input) {
    return [searchForUser(input.query), input.newPassword].promise();
  })
  .spread(function(result, newPassword) {
    return updatePassword(result.id, newPassword);
  })
  .then(function() {
    console.log("Password updated!");
  })
  .catch(handeError);