UNPKG

@mmontes11/iot-client

Version:

ES6 client library for consuming IoT server REST API

199 lines (158 loc) 5.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AuthService = undefined; var _regenerator = require("babel-runtime/regenerator"); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require("babel-runtime/helpers/asyncToGenerator"); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of"); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require("babel-runtime/helpers/createClass"); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn"); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require("babel-runtime/helpers/inherits"); var _inherits3 = _interopRequireDefault(_inherits2); var _underscore = require("underscore"); var _underscore2 = _interopRequireDefault(_underscore); var _service = require("./service"); var _tokenHandler = require("../helpers/tokenHandler"); var _auth = require("../helpers/auth"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var AuthService = exports.AuthService = function (_Service) { (0, _inherits3.default)(AuthService, _Service); function AuthService(client) { (0, _classCallCheck3.default)(this, AuthService); return (0, _possibleConstructorReturn3.default)(this, (AuthService.__proto__ || (0, _getPrototypeOf2.default)(AuthService)).call(this, client, "auth")); } (0, _createClass3.default)(AuthService, [{ key: "checkAuth", value: function checkAuth(credentials) { return this.post(undefined, credentials); } }, { key: "checkAuthToken", value: function checkAuthToken(token) { return this.post(undefined, { token: token }); } }, { key: "createUser", value: function createUser(user) { var options = { basicAuth: true }; return this.post("user", user, options); } }, { key: "getToken", value: function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() { var tokenFromStorage, _ref2, token; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return _tokenHandler.TokenHandler.getToken(); case 2: tokenFromStorage = _context.sent; if (!tokenFromStorage) { _context.next = 5; break; } return _context.abrupt("return", tokenFromStorage); case 5: _context.prev = 5; _context.next = 8; return this._getToken(); case 8: _ref2 = _context.sent; token = _ref2.body.token; _context.next = 12; return _tokenHandler.TokenHandler.storeToken(token); case 12: return _context.abrupt("return", token); case 15: _context.prev = 15; _context.t0 = _context["catch"](5); _context.next = 19; return _tokenHandler.TokenHandler.invalidateToken(); case 19: throw _context.t0; case 20: case "end": return _context.stop(); } } }, _callee, this, [[5, 15]]); })); function getToken() { return _ref.apply(this, arguments); } return getToken; }() }, { key: "getBasicAuthToken", value: function getBasicAuthToken() { if (_underscore2.default.isUndefined(this.client.basicAuthCredentials)) { throw new Error("Basic auth credentials required"); } var _client$basicAuthCred = this.client.basicAuthCredentials, username = _client$basicAuthCred.username, password = _client$basicAuthCred.password; return (0, _auth.getBasicAuthHeader)(username, password); } }, { key: "setCredentials", value: function setCredentials(username, password) { this.client.userCredentials = { username: username, password: password }; } }, { key: "logout", value: function logout() { return _tokenHandler.TokenHandler.invalidateToken(); } }, { key: "refreshToken", value: function () { var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return this.logout(); case 2: _context2.next = 4; return this.getToken(); case 4: case "end": return _context2.stop(); } } }, _callee2, this); })); function refreshToken() { return _ref3.apply(this, arguments); } return refreshToken; }() }, { key: "_getToken", value: function _getToken() { if (_underscore2.default.isUndefined(this.client.userCredentials)) { throw new Error("User credentials required"); } var user = this.client.userCredentials; var reqOpts = { auth: false, basicAuth: false, retryOnUnauthorized: false }; return this.post("token", user, reqOpts); } }]); return AuthService; }(_service.Service);