UNPKG

autobahn-react

Version:

Do realtime without headaches with Autobahn and React.

87 lines (66 loc) 2.56 kB
'use strict'; var _Promise = require('babel-runtime/core-js/promise')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _autobahn = require('autobahn'); var _autobahn2 = _interopRequireDefault(_autobahn); var _ConnectionJs = require('./Connection.js'); var _ConnectionJs2 = _interopRequireDefault(_ConnectionJs); var Auth = { currentUser: null, _signupRoute: 'com.auth.signup', _createTokenRoute: 'com.auth.create_token', setSignupRoute: function setSignupRoute(newRoute) { this._signupRoute = newRoute; }, setTokenCreationRoute: function setTokenCreationRoute(newRoute) { this._createTokenRoute = newRoute; }, _onOpened: function _onOpened(args) { var session = args[0]; var details = args[1]; this.currentUser = { session_id: session.id, id: details.authid, role: details.authrole, provider: details.authprovider, method: details.authmethod }; return _Promise.resolve([session, this.currentUser]); }, _onClosed: function _onClosed() { this.currentUser = null; return _Promise.reject(Array.prototype.slice.call(arguments)); }, signUp: function signUp(userPayload) { var session = _ConnectionJs2['default'].currentConnection.session; return session.call(this._signupRoute, [userPayload]); }, logIn: function logIn(credentials) { if (!credentials.username || !credentials.password) { throw new Error('One of credentials can\'t be null!'); } return _ConnectionJs2['default'].reconnectWithAuth(credentials.username, credentials.password).then(this._onOpened.bind(this))['catch'](this._onClosed.bind(this)); }, isLogged: function isLogged() { return this.currentUser !== null; }, createToken: function createToken() { var session = _ConnectionJs2['default'].currentConnection.session; return session.call(this._createTokenRoute, Array.prototype.slice.call(arguments), { disclose_me: true }); }, become: function become(token) { return _ConnectionJs2['default'].reconnectWithToken(token).then(this._onOpened.bind(this))['catch'](this._onClosed.bind(this)); }, canAccess: function canAccess(route) { var session = _ConnectionJs2['default'].currentConnection.session; return session.call(route, []).then(function () { return _Promise.resolve(true); })['catch'](function () { return _Promise.resolve(false); }); } }; exports.Auth = Auth;