UNPKG

@smontero/ppp-client-api

Version:

Project People & Profile client api

359 lines (299 loc) 10.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _ = _interopRequireDefault(require("..")); var _awsAmplify = require("aws-amplify"); var _BaseEosApi2 = _interopRequireDefault(require("./BaseEosApi")); var _util = require("../util"); /** * @desc Enables the authentication of the user with the aws backend services * @see BaseEosApi */ var AuthApi = /*#__PURE__*/ function (_BaseEosApi) { (0, _inherits2["default"])(AuthApi, _BaseEosApi); function AuthApi(activeUser) { (0, _classCallCheck2["default"])(this, AuthApi); return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(AuthApi).call(this, activeUser, _["default"].getConfig('loginContract'))); } (0, _createClass2["default"])(AuthApi, [{ key: "init", value: function init() { var _this = this; _["default"].events.on('activeUserChanged', function (activeUser) { return _this.setActiveUser(activeUser); }); } }, { key: "_signUp", value: function () { var _signUp2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee(accountName) { return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", _awsAmplify.Auth.signUp({ username: accountName, password: _util.Util.getRandomString(30) })); case 1: case "end": return _context.stop(); } } }, _callee); })); function _signUp(_x) { return _signUp2.apply(this, arguments); } return _signUp; }() /** * Signs In logged in user with the backend * * @returns {Objec} current session, this object does not have to be analyzed * you can assume the call was successful if no exception is thrown */ }, { key: "signIn", value: function () { var _signIn = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee2() { var accountName, cognitoUser, _cognitoUser, loginCode; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return this.getAccountName(); case 2: accountName = _context2.sent; _context2.prev = 3; _context2.next = 6; return this._signUp(accountName); case 6: _context2.next = 12; break; case 8: _context2.prev = 8; _context2.t0 = _context2["catch"](3); if (!(_context2.t0.name !== 'UsernameExistsException')) { _context2.next = 12; break; } throw _context2.t0; case 12: _context2.next = 14; return _awsAmplify.Auth.signIn(accountName); case 14: cognitoUser = _context2.sent; _cognitoUser = cognitoUser, loginCode = _cognitoUser.challengeParam.loginCode; _context2.next = 18; return this._authenticate(loginCode); case 18: _context2.next = 20; return _awsAmplify.Auth.sendCustomChallengeAnswer(cognitoUser, loginCode); case 20: cognitoUser = _context2.sent; return _context2.abrupt("return", this.currentSession()); case 22: case "end": return _context2.stop(); } } }, _callee2, this, [[3, 8]]); })); function signIn() { return _signIn.apply(this, arguments); } return signIn; }() }, { key: "_authenticate", value: function () { var _authenticate2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee3(code) { return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.t0 = this; _context3.next = 3; return this.getAccountName(); case 3: _context3.t1 = _context3.sent; _context3.t2 = code; _context3.t3 = { account_name: _context3.t1, login_code: _context3.t2 }; _context3.t4 = { name: 'loginuser', data: _context3.t3 }; return _context3.abrupt("return", _context3.t0.transact.call(_context3.t0, _context3.t4)); case 8: case "end": return _context3.stop(); } } }, _callee3, this); })); function _authenticate(_x2) { return _authenticate2.apply(this, arguments); } return _authenticate; }() /** * Returns current session if one exists * * @returns {Objec} current session * @throws exception if user is not logged in */ }, { key: "currentSession", value: function () { var _currentSession = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee4() { return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: return _context4.abrupt("return", _awsAmplify.Auth.currentSession()); case 1: case "end": return _context4.stop(); } } }, _callee4); })); function currentSession() { return _currentSession.apply(this, arguments); } return currentSession; }() /** * Returns current user info if one exists * * @returns {Objec} current user info * @throws exception if user is not logged in */ }, { key: "userInfo", value: function () { var _userInfo = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee5() { return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: return _context5.abrupt("return", _awsAmplify.Auth.currentUserInfo()); case 1: case "end": return _context5.stop(); } } }, _callee5); })); function userInfo() { return _userInfo.apply(this, arguments); } return userInfo; }() /** * Indicates whether a current valid session exists * * @returns {boolean} indicating if valid session exists */ }, { key: "hasValidSession", value: function () { var _hasValidSession = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee6() { var session; return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.prev = 0; _context6.next = 3; return this.currentSession(); case 3: session = _context6.sent; return _context6.abrupt("return", session.isValid()); case 7: _context6.prev = 7; _context6.t0 = _context6["catch"](0); return _context6.abrupt("return", false); case 10: case "end": return _context6.stop(); } } }, _callee6, this, [[0, 7]]); })); function hasValidSession() { return _hasValidSession.apply(this, arguments); } return hasValidSession; }() /** * Signs the user out */ }, { key: "signOut", value: function () { var _signOut = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee7() { return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.prev = 0; _context7.next = 3; return _awsAmplify.Auth.signOut(); case 3: _context7.next = 8; break; case 5: _context7.prev = 5; _context7.t0 = _context7["catch"](0); console.warn('Error signing out', _context7.t0); case 8: this.emit('signOut'); case 9: case "end": return _context7.stop(); } } }, _callee7, this, [[0, 5]]); })); function signOut() { return _signOut.apply(this, arguments); } return signOut; }() }]); return AuthApi; }(_BaseEosApi2["default"]); var _default = AuthApi; exports["default"] = _default;