@sungly/cognito-cli
Version:
CLI for all Cognito user life cycle management
510 lines (428 loc) • 21.4 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _prompt = require('prompt');
var _prompt2 = _interopRequireDefault(_prompt);
var _bluebird = require('bluebird');
var _bluebird2 = _interopRequireDefault(_bluebird);
var _config = require('../../config');
var _config2 = _interopRequireDefault(_config);
var _services = require('../../services');
var _util = require('../../util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var UserCmd = function () {
function UserCmd() {
(0, _classCallCheck3.default)(this, UserCmd);
}
(0, _createClass3.default)(UserCmd, [{
key: 'createUser',
value: function createUser() {
var _this = this;
_config2.default.requiredAttributeList.push('password');
var requiredAttributes = _config2.default.requiredAttributeList.map(function (attr) {
return {
name: attr,
required: true
};
});
_prompt2.default.get(requiredAttributes, function () {
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(err, result) {
var username, password, attributes;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
username = result.username ? result.username : result.email;
password = result.password;
delete result.password;
attributes = Object.keys(result).map(function (key) {
return {
Name: key,
Value: result[key]
};
});
_context.next = 6;
return _services.userService.createUser({
username: username,
password: password,
attributes: attributes
});
case 6:
case 'end':
return _context.stop();
}
}
}, _callee, _this);
}));
return function (_x, _x2) {
return _ref.apply(this, arguments);
};
}());
}
}, {
key: 'confirmUserSignup',
value: function confirmUserSignup() {
var _this2 = this;
var requiredAttributes = [{
name: 'username',
required: true
}, {
name: 'code',
required: true
}];
_prompt2.default.get(requiredAttributes, function () {
var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(err, result) {
var username, code;
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
username = result.username, code = result.code;
_context2.next = 3;
return _services.userService.confirmSignUp({
username: username,
code: code
});
case 3:
case 'end':
return _context2.stop();
}
}
}, _callee2, _this2);
}));
return function (_x3, _x4) {
return _ref2.apply(this, arguments);
};
}());
}
}, {
key: 'resendConfirmationCode',
value: function resendConfirmationCode() {
var _this3 = this;
var requiredAttributes = [{
name: 'username',
required: true
}];
_prompt2.default.get(requiredAttributes, function () {
var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(err, result) {
var username, res;
return _regenerator2.default.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
username = result.username;
_context3.next = 3;
return _services.userService.resendConfirmationCode({
username: username
});
case 3:
res = _context3.sent;
_util.logger.info(res);
case 5:
case 'end':
return _context3.stop();
}
}
}, _callee3, _this3);
}));
return function (_x5, _x6) {
return _ref3.apply(this, arguments);
};
}());
}
}, {
key: 'forgotPassword',
value: function forgotPassword() {
var _this4 = this;
var requiredAttributes = [{
name: 'username',
required: true
}];
_prompt2.default.get(requiredAttributes, function () {
var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(err, result) {
var username;
return _regenerator2.default.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
username = result.username;
_context4.next = 3;
return _services.userService.forgotPassword({
username: username
});
case 3:
case 'end':
return _context4.stop();
}
}
}, _callee4, _this4);
}));
return function (_x7, _x8) {
return _ref4.apply(this, arguments);
};
}());
}
}, {
key: 'setUserPassword',
value: function setUserPassword() {
var _this5 = this;
var requiredAttributes = [{
name: 'username',
required: true
}, {
name: 'password',
required: true
}];
_prompt2.default.get(requiredAttributes, function () {
var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(err, result) {
var username, password;
return _regenerator2.default.wrap(function _callee5$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
username = result.username, password = result.password;
_context5.next = 3;
return _services.userService.setUserPassword({
username: username,
newPassword: password
});
case 3:
case 'end':
return _context5.stop();
}
}
}, _callee5, _this5);
}));
return function (_x9, _x10) {
return _ref5.apply(this, arguments);
};
}());
}
}, {
key: 'getUserProfile',
value: function getUserProfile() {
var _this6 = this;
var requiredAttributes = [{
name: 'username',
required: true
}];
_prompt2.default.get(requiredAttributes, function () {
var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(err, result) {
var username;
return _regenerator2.default.wrap(function _callee6$(_context6) {
while (1) {
switch (_context6.prev = _context6.next) {
case 0:
username = result.username;
_context6.next = 3;
return _services.userService.getUserProfile({
username: username
});
case 3:
case 'end':
return _context6.stop();
}
}
}, _callee6, _this6);
}));
return function (_x11, _x12) {
return _ref6.apply(this, arguments);
};
}());
}
}, {
key: 'verifyUserEmail',
value: function verifyUserEmail() {
var _this7 = this;
var requiredAttributes = [{
name: 'email',
required: true
}];
_prompt2.default.get(requiredAttributes, function () {
var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(err, result) {
var email;
return _regenerator2.default.wrap(function _callee7$(_context7) {
while (1) {
switch (_context7.prev = _context7.next) {
case 0:
email = result.email;
_context7.next = 3;
return _services.userService.verifyUserEmail({
username: email
});
case 3:
case 'end':
return _context7.stop();
}
}
}, _callee7, _this7);
}));
return function (_x13, _x14) {
return _ref7.apply(this, arguments);
};
}());
}
}, {
key: 'disableUser',
value: function disableUser() {
var _this8 = this;
var requiredAttributes = [{
name: 'username',
required: true
}];
_prompt2.default.get(requiredAttributes, function () {
var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(err, result) {
var username;
return _regenerator2.default.wrap(function _callee8$(_context8) {
while (1) {
switch (_context8.prev = _context8.next) {
case 0:
username = result.username;
_context8.next = 3;
return _services.userService.disableUser({
username: username
});
case 3:
case 'end':
return _context8.stop();
}
}
}, _callee8, _this8);
}));
return function (_x15, _x16) {
return _ref8.apply(this, arguments);
};
}());
}
}, {
key: 'enableUser',
value: function enableUser() {
var _this9 = this;
var requiredAttributes = [{
name: 'username',
required: true
}];
_prompt2.default.get(requiredAttributes, function () {
var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(err, result) {
var username;
return _regenerator2.default.wrap(function _callee9$(_context9) {
while (1) {
switch (_context9.prev = _context9.next) {
case 0:
username = result.username;
_context9.next = 3;
return _services.userService.enableUser({
username: username
});
case 3:
case 'end':
return _context9.stop();
}
}
}, _callee9, _this9);
}));
return function (_x17, _x18) {
return _ref9.apply(this, arguments);
};
}());
}
}, {
key: 'batchDeleteUsers',
value: function () {
var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12() {
var _this10 = this;
var requiredAttributes;
return _regenerator2.default.wrap(function _callee12$(_context12) {
while (1) {
switch (_context12.prev = _context12.next) {
case 0:
requiredAttributes = [{
name: 'Confirmation',
description: 'Are you sure you want to delete? yes/no',
pattern: /^(?:yes|Yes|no|No)$/,
required: true
}];
_prompt2.default.get(requiredAttributes, function () {
var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(err, result) {
var users, results;
return _regenerator2.default.wrap(function _callee11$(_context11) {
while (1) {
switch (_context11.prev = _context11.next) {
case 0:
if (!(result.Confirmation.toLowerCase() === 'yes')) {
_context11.next = 11;
break;
}
users = void 0;
case 2:
_context11.next = 4;
return _services.userService.listUsers();
case 4:
results = _context11.sent;
users = results.Users.map(function (users) {
return users.Username;
});
_util.logger.info('Number of users found ' + users.length);
_context11.next = 9;
return _bluebird2.default.map(users, function () {
var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(username) {
return _regenerator2.default.wrap(function _callee10$(_context10) {
while (1) {
switch (_context10.prev = _context10.next) {
case 0:
_context10.next = 2;
return _services.userService.deleteUsers(username);
case 2:
case 'end':
return _context10.stop();
}
}
}, _callee10, _this10);
}));
return function (_x21) {
return _ref12.apply(this, arguments);
};
}(), { concurrency: 3 });
case 9:
_util.logger.info('Successfully deleted ' + users.length);
case 10:
if (users.length !== 0) {
_context11.next = 2;
break;
}
case 11:
case 'end':
return _context11.stop();
}
}
}, _callee11, _this10);
}));
return function (_x19, _x20) {
return _ref11.apply(this, arguments);
};
}());
case 2:
case 'end':
return _context12.stop();
}
}
}, _callee12, this);
}));
function batchDeleteUsers() {
return _ref10.apply(this, arguments);
}
return batchDeleteUsers;
}()
}]);
return UserCmd;
}();
exports.default = UserCmd;