UNPKG

@r3l/app

Version:
1,548 lines (1,348 loc) 47.9 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.setCommunity = setCommunity; exports.setInviteCode = setInviteCode; exports.updateInvite = updateInvite; exports.sendPong = sendPong; exports.updateAuthUser = updateAuthUser; exports.setUser = setUser; exports.setSelectedUserData = setSelectedUserData; exports.setUserIndex = setUserIndex; exports.setPreUser = setPreUser; exports.setAuthStatusText = setAuthStatusText; exports.loginUserSuccess = loginUserSuccess; exports.loginUserFailure = loginUserFailure; exports.loginUserRequest = loginUserRequest; exports.logout = logout; exports.cacheCommunity = cacheCommunity; exports.logoutAction = logoutAction; exports.setCurrentTooltip = setCurrentTooltip; exports.updateUser = updateUser; exports.updateNotificationSettings = updateNotificationSettings; exports.setDeviceToken = setDeviceToken; exports.removeDeviceToken = removeDeviceToken; exports.enableMobileNotifications = enableMobileNotifications; exports.getUser = getUser; exports.setOnboardingStep = setOnboardingStep; exports.webOnboard = webOnboard; exports.loginUser = loginUser; exports.userOnline = userOnline; exports.checkUser = checkUser; exports.createUser = createUser; exports.updateHandle = updateHandle; exports.sendConfirmation = sendConfirmation; exports.forgotPassword = forgotPassword; exports.resetPassword = resetPassword; exports.confirmEmail = confirmEmail; exports.setStats = setStats; exports.getChart = getChart; exports.getStats = getStats; exports.getRelChart = getRelChart; exports.setTwitter = setTwitter; exports.setLoading = setLoading; exports.twitterAuth = twitterAuth; exports.appleLogin = appleLogin; exports.userToSocket = userToSocket; exports.redeemInvite = redeemInvite; exports.loginWithBox = loginWithBox; exports.updateUserTokenBalance = updateUserTokenBalance; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var types = _interopRequireWildcard(require("../../core/actionTypes")); var _utils = require("../../utils"); var errorActions = _interopRequireWildcard(require("../ui/error.actions")); var tooltipActions = _interopRequireWildcard(require("../tooltip/tooltip.actions")); var _community = require("../community/community.actions"); var _env = require("../../utils/env"); var _common = require("@r3l/common"); var _web = require("../../utils/recaptcha/web"); var _nav = require("../../utils/nav"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var Alert = _utils.alert.Alert(); var PushNotification; var StackActions; var userDefaults; var ReactGA; var TwitterCT; if (process.env.WEB !== 'true') { userDefaults = require('react-native-swiss-knife').RNSKBucket; PushNotification = require('react-native-push-notification'); StackActions = require('react-navigation').StackActions; configurePushNotifications(); } else { ReactGA = require('react-ga').default; TwitterCT = require("../../utils/social").TwitterCT; } var APP_GROUP_ID = 'group.com.4real.relevant'; var reqOptions = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() { var token; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return _utils.storage.getToken(); case 2: token = _context.sent; return _context.abrupt("return", { credentials: 'include', headers: { Accept: 'application/json', 'Content-Type': 'application/json', Authorization: "Bearer ".concat(token) } }); case 4: case "end": return _context.stop(); } } }, _callee); })); return function reqOptions() { return _ref.apply(this, arguments); }; }(); function setCommunity(community) { return function (dispatch) { if (community == null || _common.BANNED_COMMUNITY_SLUGS.includes(community)) return null; return dispatch({ type: types.SET_COMMUNITY, payload: community }); }; } function setInviteCode(code) { return { type: types.SET_INVITE_CODE, payload: code }; } function updateInvite(invite) { return { type: types.UPDATE_INVITE, payload: invite }; } function sendPong() { return { type: 'server/pong' }; } function updateAuthUser(user) { return { type: types.UPDATE_AUTH_USER, payload: user }; } function setUser(user) { return { type: types.SET_USER, payload: user }; } function setSelectedUserData(data) { return { type: types.SET_SELECTED_USER_DATA, payload: data }; } function setUserIndex(userIndex) { return { type: types.SET_USER_INDEX, payload: userIndex }; } function setPreUser(preUser) { return { type: 'SET_PRE_USER', payload: preUser }; } function setAuthStatusText(text) { return { type: 'SET_AUTH_STATUS_TEXT', payload: text || null }; } function loginUserSuccess(token) { return { type: types.LOGIN_USER_SUCCESS, payload: { token: token } }; } function loginUserFailure() { return { type: types.LOGIN_USER_FAILURE }; } function loginUserRequest() { return { type: types.LOGIN_USER_REQUEST }; } function logout() { return { type: types.LOGOUT_USER }; } function cacheCommunity(community) { return /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(dispatch) { return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.prev = 0; _context2.next = 3; return dispatch(_utils.api.request({ method: 'PUT', endpoint: 'user', path: '/updateCommunity', body: JSON.stringify({ community: community }) })); case 3: _context2.next = 8; break; case 5: _context2.prev = 5; _context2.t0 = _context2["catch"](0); console.log(_context2.t0); // eslint-disable-line case 8: case "end": return _context2.stop(); } } }, _callee2, null, [[0, 5]]); })); return function (_x) { return _ref2.apply(this, arguments); }; }(); } function logoutAction(user) { return function (dispatch) { _utils.storage.removeToken().then(function () { // websocket message if (user && user._id) { dispatch({ type: 'server/logout', payload: user._id }); } dispatch(logout()); }); }; } function setCurrentTooltip(step) { return { type: types.SET_ONBOARDING_STEP, payload: step }; } function updateUser(user, preventLocalUpdate) { return /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(dispatch) { var res; return _regenerator.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.prev = 0; _context3.next = 3; return dispatch(_utils.api.request({ method: 'PUT', endpoint: 'user', path: '/', body: JSON.stringify(user) })); case 3: res = _context3.sent; if (!preventLocalUpdate) dispatch(updateAuthUser(res)); return _context3.abrupt("return", true); case 8: _context3.prev = 8; _context3.t0 = _context3["catch"](0); Alert.alert(_context3.t0.message); return _context3.abrupt("return", false); case 12: case "end": return _context3.stop(); } } }, _callee3, null, [[0, 8]]); })); return function (_x2) { return _ref3.apply(this, arguments); }; }(); } function updateNotificationSettings(notificationSettings, subscription, deviceTokens) { return /*#__PURE__*/function () { var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(dispatch) { var res; return _regenerator.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.prev = 0; _context4.next = 3; return dispatch(_utils.api.request({ method: 'PUT', endpoint: 'user', path: '/notifications', body: JSON.stringify({ notificationSettings: notificationSettings, subscription: subscription, deviceTokens: deviceTokens }) })); case 3: res = _context4.sent; dispatch(updateAuthUser(res)); return _context4.abrupt("return", true); case 8: _context4.prev = 8; _context4.t0 = _context4["catch"](0); Alert.alert(_context4.t0.message); return _context4.abrupt("return", false); case 12: case "end": return _context4.stop(); } } }, _callee4, null, [[0, 8]]); })); return function (_x3) { return _ref4.apply(this, arguments); }; }(); } function setDeviceToken(token) { return { type: 'SET_DEVICE_TOKEN', payload: token }; } function removeDeviceToken(auth) { if (!auth) return null; return function (dispatch) { var user = auth.user; if (user.deviceTokens) { var index = user.deviceTokens.indexOf(auth.deviceToken); if (index > -1) { user.deviceTokens.splice(index, 1); dispatch(updateUser(user, true)); } } }; } function enableMobileNotifications(user, checkIfEnbaled) { return function (dispatch) { if (!user.notificationSettings.mobile.all && checkIfEnbaled) return; if (!PushNotification) return; configurePushNotifications(dispatch); registerPushNotification({ dispatch: dispatch, user: user }); }; } function configurePushNotifications(dispatch) { PushNotification.configure({ smallIcon: '@mipmap/notification', onNotification: function onNotification(notification) { // other params: foreground, message var userInteraction = notification.userInteraction; if (!userInteraction) return; var data = _objectSpread(_objectSpread({}, notification), notification === null || notification === void 0 ? void 0 : notification.data); if (data && data.postId) { var comment = data.comment ? { _id: data.comment } : null; if (dispatch && data.community) dispatch(setCommunity(data.community)); (0, _nav.dispatchNavigatorAction)(StackActions.push({ routeName: 'singlePost', params: { title: data.title, back: true, community: data.community, comment: comment, id: data.postId } })); } }, // ANDROID ONLY: GCM Sender ID // need to receive remote push notifications) senderID: '271994332492', // IOS ONLY (optional): default: all - Permissions to register. permissions: { alert: true, badge: true, sound: true }, popInitialNotification: true, requestPermissions: true }); } function registerPushNotification(_ref5) { var dispatch = _ref5.dispatch, user = _ref5.user; PushNotification.onRegister = function (deviceToken) { var token = deviceToken.token; userDefaults.set('deviceToken', token, APP_GROUP_ID); dispatch(setDeviceToken(token)); var newUser = _objectSpread({}, user); if (user.deviceTokens && user.deviceTokens.indexOf(token) < 0) { newUser.deviceTokens.push(token); } else if (user.deviceTokens.indexOf(token) < 0) { newUser.deviceTokens = [token]; } var notificationSettings = _objectSpread({}, newUser.notificationSettings); dispatch(updateNotificationSettings(notificationSettings, null, newUser.deviceTokens)); }; } function setupUser(user, dispatch) { dispatch(setUser(user)); dispatch(setSelectedUserData(user)); dispatch(errorActions.setError('universal', false)); dispatch(tooltipActions.tooltipReady(true)); return user; } function getUser(callback) { return /*#__PURE__*/function () { var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(dispatch, getState) { var token, user, state, community, checkIfEnabled, isAdmin, message; return _regenerator.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.prev = 0; _context5.next = 3; return _utils.storage.getToken(); case 3: token = _context5.sent; if (token) { _context5.next = 6; break; } return _context5.abrupt("return", null); case 6: dispatch(loginUserSuccess(token)); _context5.next = 9; return dispatch(_utils.api.request({ method: 'GET', endpoint: 'user', path: '/me' })); case 9: user = _context5.sent; setupUser(user, dispatch); _utils.Analytics === null || _utils.Analytics === void 0 ? void 0 : _utils.Analytics.setUserId(user === null || user === void 0 ? void 0 : user._id); state = getState(); community = state.auth.community; if (!community && user.community) { dispatch(setCommunity(null)); } checkIfEnabled = true; dispatch(enableMobileNotifications(user, checkIfEnabled)); if (user.memberships) { isAdmin = user.memberships.filter(function (m) { return m.role === 'admin'; }).length > 0; _utils.Analytics === null || _utils.Analytics === void 0 ? void 0 : _utils.Analytics.setUserProperties({ isAdmin: isAdmin.toString() }); dispatch((0, _community.setUserMemberships)(user.memberships)); } if (callback) callback(user); return _context5.abrupt("return", user); case 22: _context5.prev = 22; _context5.t0 = _context5["catch"](0); message = _context5.t0 ? _context5.t0.message : null; dispatch(errorActions.setError('universal', true, message)); dispatch(loginUserFailure('Server error')); if (callback) callback({ ok: false }); return _context5.abrupt("return", null); case 29: case "end": return _context5.stop(); } } }, _callee5, null, [[0, 22]]); })); return function (_x4, _x5) { return _ref6.apply(this, arguments); }; }(); } function setOnboardingStep(step) { return /*#__PURE__*/function () { var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(dispatch) { return _regenerator.default.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.t0 = fetch; _context6.t1 = _env.API_URL + '/api/user/onboarding/' + step; _context6.t2 = _objectSpread; _context6.t3 = { credentials: 'include', method: 'GET' }; _context6.next = 6; return reqOptions(); case 6: _context6.t4 = _context6.sent; _context6.t5 = (0, _context6.t2)(_context6.t3, _context6.t4); return _context6.abrupt("return", (0, _context6.t0)(_context6.t1, _context6.t5).then(function (response) { return response.json(); }).then(function (responseJSON) { dispatch(updateAuthUser(responseJSON)); return true; }).catch(function () { return false; })); case 9: case "end": return _context6.stop(); } } }, _callee6); })); return function (_x6) { return _ref7.apply(this, arguments); }; }(); } function webOnboard(step) { return /*#__PURE__*/function () { var _ref8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(dispatch) { return _regenerator.default.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.prev = 0; _context7.next = 3; return dispatch(_utils.api.request({ method: 'PUT', endpoint: 'user', path: '/webonboard', params: { step: step } })); case 3: return _context7.abrupt("return", true); case 6: _context7.prev = 6; _context7.t0 = _context7["catch"](0); Alert.alert(_context7.t0.message); return _context7.abrupt("return", false); case 10: case "end": return _context7.stop(); } } }, _callee7, null, [[0, 6]]); })); return function (_x7) { return _ref8.apply(this, arguments); }; }(); } function loginUser(user, _recaptcha) { return /*#__PURE__*/function () { var _ref9 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(dispatch) { var recaptcha, responseJSON; return _regenerator.default.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _context8.prev = 0; _context8.t0 = _recaptcha; if (_context8.t0) { _context8.next = 6; break; } _context8.next = 5; return (0, _web.getCaptcha)('login'); case 5: _context8.t0 = _context8.sent; case 6: recaptcha = _context8.t0; _context8.next = 9; return dispatch(_utils.api.request({ method: 'POST', endpoint: '/auth', path: '/local', body: JSON.stringify(_objectSpread(_objectSpread({}, user), {}, { recaptcha: recaptcha })) })); case 9: responseJSON = _context8.sent; if (!responseJSON.token) { _context8.next = 16; break; } _context8.next = 13; return _utils.storage.setToken(responseJSON.token); case 13: dispatch(loginUserSuccess(responseJSON.token)); dispatch(getUser()); return _context8.abrupt("return", true); case 16: dispatch(loginUserFailure(responseJSON.message)); Alert.alert(responseJSON.message); return _context8.abrupt("return", false); case 21: _context8.prev = 21; _context8.t1 = _context8["catch"](0); Alert.alert(_context8.t1.message); return _context8.abrupt("return", false); case 25: case "end": return _context8.stop(); } } }, _callee8, null, [[0, 21]]); })); return function (_x8) { return _ref9.apply(this, arguments); }; }(); } function userOnline(user, token) { return function () { return fetch(_env.API_URL + '/api/notification/online/' + user._id + '?access_token=' + token, { credentials: 'include', method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json' } }).then(function (response) { return response.json(); }).catch(function () {// Handle error? }); }; } function checkUser(string, type) { var omitSelf = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; return function () { return fetch("".concat(_env.API_URL, "/api/user/check/user/?").concat(type, "=").concat(string, "&omitSelf=").concat(omitSelf), { credentials: 'include', method: 'GET', headers: { Accept: 'application/json', 'Content-Type': 'application/json' } }).then(function (response) { return response.json(); }).then(function (responseJSON) { return responseJSON; }).catch(function (error) { Alert.alert(error.message); }); }; } function createUser(user, invitecode) { return function (dispatch) { dispatch(setLoading(true)); fetch(_env.API_URL + '/api/user', { credentials: 'include', method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ user: user, invitecode: invitecode }) }).then(_utils.api.handleErrors).then(function (response) { return response.json(); }).then(function (responseJSON) { if (responseJSON.token) { return _utils.storage.setToken(responseJSON.token).then(function () { ReactGA && ReactGA.event({ category: 'User', action: 'Created an Account' }); TwitterCT && TwitterCT.signUp(); _utils.Analytics && _utils.Analytics.logEvent('CreatedAccount'); dispatch(setLoading(false)); dispatch(loginUserSuccess(responseJSON.token)); dispatch(getUser()); return true; }); } if (responseJSON.errors) { var errors = responseJSON.errors; var message = ''; Object.keys(errors).forEach(function (key) { if (errors[key].message) message += errors[key].message; }); dispatch(setLoading(false)); Alert.alert(message); return false; } return false; }).catch(function (error) { dispatch(setLoading(false)); if (error.message.match('invitation code')) { dispatch(updateInvite(null)); } Alert.alert(error.message); return false; }); }; } function updateHandle(user) { return /*#__PURE__*/function () { var _ref10 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(dispatch) { var result; return _regenerator.default.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.prev = 0; _context9.next = 3; return dispatch(_utils.api.request({ method: 'PUT', endpoint: 'user', path: '/updateHandle', body: JSON.stringify({ user: user }) })); case 3: result = _context9.sent; ReactGA && ReactGA.event({ category: 'User', action: 'Created an Account' }); _utils.Analytics === null || _utils.Analytics === void 0 ? void 0 : _utils.Analytics.logEvent('CreatedAccount'); setupUser(result, dispatch); return _context9.abrupt("return", true); case 10: _context9.prev = 10; _context9.t0 = _context9["catch"](0); Alert.alert(_context9.t0.message); return _context9.abrupt("return", false); case 14: case "end": return _context9.stop(); } } }, _callee9, null, [[0, 10]]); })); return function (_x9) { return _ref10.apply(this, arguments); }; }(); } function sendConfirmation() { return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() { return _regenerator.default.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: _context10.t0 = fetch; _context10.t1 = _env.API_URL + '/api/user/sendConfirmation'; _context10.t2 = _objectSpread; _context10.t3 = { method: 'GET' }; _context10.next = 6; return reqOptions(); case 6: _context10.t4 = _context10.sent; _context10.t5 = (0, _context10.t2)(_context10.t3, _context10.t4); return _context10.abrupt("return", (0, _context10.t0)(_context10.t1, _context10.t5).then(_utils.api.handleErrors).then(function (response) { return response.json(); }).then(function (responseJSON) { Alert.alert('A confirmation email has been sent to ' + responseJSON.email, 'success'); return true; }).catch(function (err) { Alert.alert('Error sending email, please try again ', err.message); return false; })); case 9: case "end": return _context10.stop(); } } }, _callee10); })); } function forgotPassword(user, query) { return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() { var res, responseJSON; return _regenerator.default.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: _context11.prev = 0; _context11.t0 = fetch; _context11.t1 = _env.API_URL + '/api/user/forgot' + (query || ''); _context11.t2 = _objectSpread; _context11.t3 = _objectSpread; _context11.t4 = { method: 'PUT' }; _context11.next = 8; return reqOptions(); case 8: _context11.t5 = _context11.sent; _context11.t6 = (0, _context11.t3)(_context11.t4, _context11.t5); _context11.t7 = {}; _context11.t8 = { body: JSON.stringify({ user: user }) }; _context11.t9 = (0, _context11.t2)(_context11.t6, _context11.t7, _context11.t8); _context11.next = 15; return (0, _context11.t0)(_context11.t1, _context11.t9); case 15: res = _context11.sent; _context11.next = 18; return _utils.api.handleErrors(res); case 18: _context11.next = 20; return res.json(); case 20: responseJSON = _context11.sent; return _context11.abrupt("return", responseJSON); case 24: _context11.prev = 24; _context11.t10 = _context11["catch"](0); Alert.alert(_context11.t10.message); return _context11.abrupt("return", false); case 28: case "end": return _context11.stop(); } } }, _callee11, null, [[0, 24]]); })); } function resetPassword(password, token) { return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() { return _regenerator.default.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: _context12.t0 = fetch; _context12.t1 = _env.API_URL + '/api/user/resetPassword'; _context12.t2 = _objectSpread; _context12.t3 = _objectSpread; _context12.t4 = { method: 'PUT' }; _context12.next = 7; return reqOptions(); case 7: _context12.t5 = _context12.sent; _context12.t6 = (0, _context12.t3)(_context12.t4, _context12.t5); _context12.t7 = {}; _context12.t8 = { body: JSON.stringify({ password: password, token: token }) }; _context12.t9 = (0, _context12.t2)(_context12.t6, _context12.t7, _context12.t8); return _context12.abrupt("return", (0, _context12.t0)(_context12.t1, _context12.t9).then(_utils.api.handleErrors).then(function (response) { return response.json(); }).then(function () { Alert.alert('Your password has been updated! Try loggin in.', 'success'); return true; }).catch(function (err) { Alert.alert(err.message); return false; })); case 13: case "end": return _context12.stop(); } } }, _callee12); })); } function confirmEmail(user, code) { return /*#__PURE__*/function () { var _ref14 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(dispatch) { return _regenerator.default.wrap(function _callee13$(_context13) { while (1) { switch (_context13.prev = _context13.next) { case 0: _context13.t0 = fetch; _context13.t1 = _env.API_URL + '/api/user/confirm'; _context13.t2 = _objectSpread; _context13.t3 = _objectSpread; _context13.t4 = { method: 'PUT' }; _context13.next = 7; return reqOptions(); case 7: _context13.t5 = _context13.sent; _context13.t6 = (0, _context13.t3)(_context13.t4, _context13.t5); _context13.t7 = {}; _context13.t8 = { body: JSON.stringify({ user: user, code: code }) }; _context13.t9 = (0, _context13.t2)(_context13.t6, _context13.t7, _context13.t8); return _context13.abrupt("return", (0, _context13.t0)(_context13.t1, _context13.t9).then(_utils.api.handleErrors).then(function (response) { return response.json(); }).then(function (responseJSON) { Alert.alert('Your email has been confirmed'); dispatch(updateAuthUser(responseJSON)); return true; }).catch(function (err) { Alert.alert(err.message); return false; })); case 13: case "end": return _context13.stop(); } } }, _callee13); })); return function (_x10) { return _ref14.apply(this, arguments); }; }(); } function setStats(stats) { return { type: types.SET_STATS, payload: stats }; } function getChart(start, end) { return /*#__PURE__*/function () { var _ref15 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(dispatch) { var chart; return _regenerator.default.wrap(function _callee14$(_context14) { while (1) { switch (_context14.prev = _context14.next) { case 0: _context14.prev = 0; _context14.next = 3; return dispatch(_utils.api.request({ method: 'GET', endpoint: 'relevanceStats', path: '/user', query: { start: start, end: end } })); case 3: chart = _context14.sent; dispatch(setStats({ chart: chart })); dispatch(errorActions.setError('stats', false)); return _context14.abrupt("return", true); case 9: _context14.prev = 9; _context14.t0 = _context14["catch"](0); dispatch(errorActions.setError('stats', true, _context14.t0.message)); return _context14.abrupt("return", false); case 13: case "end": return _context14.stop(); } } }, _callee14, null, [[0, 9]]); })); return function (_x11) { return _ref15.apply(this, arguments); }; }(); } function getStats(user) { return /*#__PURE__*/function () { var _ref16 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(dispatch) { var stats; return _regenerator.default.wrap(function _callee15$(_context15) { while (1) { switch (_context15.prev = _context15.next) { case 0: _context15.prev = 0; _context15.next = 3; return dispatch(_utils.api.request({ method: 'GET', endpoint: 'relevance', path: "/user/".concat(user._id, "/stats") })); case 3: stats = _context15.sent; dispatch(setStats(stats)); dispatch(errorActions.setError('stats', false)); return _context15.abrupt("return", true); case 9: _context15.prev = 9; _context15.t0 = _context15["catch"](0); dispatch(errorActions.setError('stats', true, _context15.t0.message)); return _context15.abrupt("return", false); case 13: case "end": return _context15.stop(); } } }, _callee15, null, [[0, 9]]); })); return function (_x12) { return _ref16.apply(this, arguments); }; }(); } function getRelChart(start, end) { return /*#__PURE__*/function () { var _ref17 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(dispatch) { var relChart; return _regenerator.default.wrap(function _callee16$(_context16) { while (1) { switch (_context16.prev = _context16.next) { case 0: _context16.prev = 0; _context16.next = 3; return dispatch(_utils.api.request({ method: 'GET', endpoint: 'statistics', path: '/user', query: { start: start, end: end } })); case 3: relChart = _context16.sent; dispatch(setStats({ relChart: relChart })); dispatch(errorActions.setError('stats', false)); return _context16.abrupt("return", true); case 9: _context16.prev = 9; _context16.t0 = _context16["catch"](0); dispatch(errorActions.setError('stats', true, _context16.t0.message)); return _context16.abrupt("return", false); case 13: case "end": return _context16.stop(); } } }, _callee16, null, [[0, 9]]); })); return function (_x13) { return _ref17.apply(this, arguments); }; }(); } function setTwitter(profile) { return { type: types.SET_TWITTER, payload: profile }; } function setLoading(loading) { return { type: types.SET_LOADING, payload: loading }; } function twitterAuth(profile, invite) { return /*#__PURE__*/function () { var _ref18 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(dispatch) { var result; return _regenerator.default.wrap(function _callee17$(_context17) { while (1) { switch (_context17.prev = _context17.next) { case 0: _context17.prev = 0; dispatch(setLoading(true)); _context17.next = 4; return dispatch(_utils.api.request({ method: 'POST', endpoint: '/auth/', path: 'twitter/login', body: JSON.stringify({ profile: profile, invite: invite }) })); case 4: result = _context17.sent; if (result) { _context17.next = 7; break; } throw new Error('Twitter Auth failed'); case 7: dispatch(setLoading(false)); if (!(result.user && result.user.role === 'temp')) { _context17.next = 15; break; } _context17.next = 11; return _utils.storage.setToken(result.token); case 11: dispatch(loginUserSuccess(result.token)); dispatch(setPreUser(result.user)); dispatch(setTwitter(_objectSpread(_objectSpread({}, profile), {}, { token: result.token }))); return _context17.abrupt("return", false); case 15: if (!(result.token && result.user)) { _context17.next = 20; break; } _context17.next = 18; return _utils.storage.setToken(result.token); case 18: dispatch(loginUserSuccess(result.token)); setupUser(result.user, dispatch); case 20: return _context17.abrupt("return", true); case 23: _context17.prev = 23; _context17.t0 = _context17["catch"](0); dispatch(setTwitter(null)); dispatch(setLoading(false)); Alert.alert(_context17.t0.message); return _context17.abrupt("return", false); case 29: case "end": return _context17.stop(); } } }, _callee17, null, [[0, 23]]); })); return function (_x14) { return _ref18.apply(this, arguments); }; }(); } function appleLogin(identityToken) { return /*#__PURE__*/function () { var _ref19 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(dispatch) { var result; return _regenerator.default.wrap(function _callee18$(_context18) { while (1) { switch (_context18.prev = _context18.next) { case 0: _context18.prev = 0; dispatch(setLoading(true)); _context18.next = 4; return dispatch(_utils.api.request({ method: 'POST', endpoint: '/auth/', path: 'apple/login', body: JSON.stringify({ identityToken: identityToken }) })); case 4: result = _context18.sent; dispatch(setLoading(false)); if (!(result.token && result.user)) { _context18.next = 11; break; } _context18.next = 9; return _utils.storage.setToken(result.token); case 9: dispatch(loginUserSuccess(result.token)); setupUser(result.user, dispatch); case 11: _context18.next = 17; break; case 13: _context18.prev = 13; _context18.t0 = _context18["catch"](0); dispatch(setLoading(false)); Alert.alert(_context18.t0.message); case 17: case "end": return _context18.stop(); } } }, _callee18, null, [[0, 13]]); })); return function (_x15) { return _ref19.apply(this, arguments); }; }(); } function userToSocket(user) { return function (dispatch) { if (!user) return; dispatch({ type: 'server/storeUser', payload: user }); }; } function redeemInvite(invitecode) { return /*#__PURE__*/function () { var _ref20 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(dispatch) { var user; return _regenerator.default.wrap(function _callee19$(_context19) { while (1) { switch (_context19.prev = _context19.next) { case 0: _context19.prev = 0; _context19.next = 3; return dispatch(_utils.api.request({ method: 'PUT', endpoint: 'invites', path: '/', body: JSON.stringify({ invitecode: invitecode }) })); case 3: user = _context19.sent; dispatch(setInviteCode(null)); dispatch(updateAuthUser(user)); Alert.alert('You are now a trusted admin of the community!', 'success'); _context19.next = 12; break; case 9: _context19.prev = 9; _context19.t0 = _context19["catch"](0); dispatch(setInviteCode(null)); // Alert.alert(err.message); case 12: case "end": return _context19.stop(); } } }, _callee19, null, [[0, 9]]); })); return function (_x16) { return _ref20.apply(this, arguments); }; }(); } function loginWithBox(_ref21) { var address = _ref21.address, signature = _ref21.signature, msg = _ref21.msg; return /*#__PURE__*/function () { var _ref22 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20(dispatch) { var res; return _regenerator.default.wrap(function _callee20$(_context20) { while (1) { switch (_context20.prev = _context20.next) { case 0: _context20.prev = 0; _context20.next = 3; return dispatch(_utils.api.request({ method: 'POST', endpoint: '/auth', path: '/web3', body: JSON.stringify({ address: address, signature: signature, msg: msg }) })); case 3: res = _context20.sent; if (!res.token) { _context20.next = 10; break; } _context20.next = 7; return _utils.storage.setToken(res.token); case 7: dispatch(loginUserSuccess(res.token)); dispatch(getUser()); return _context20.abrupt("return", true); case 10: dispatch(loginUserFailure(res.message)); Alert.alert(res.message); return _context20.abrupt("return", false); case 15: _context20.prev = 15; _context20.t0 = _context20["catch"](0); Alert.alert(_context20.t0.message); return _context20.abrupt("return", false); case 19: case "end": return _context20.stop(); } } }, _callee20, null, [[0, 15]]); })); return function (_x17) { return _ref22.apply(this, arguments); }; }(); } function updateUserTokenBalance() { return /*#__PURE__*/function () { var _ref23 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21(dispatch) { var res; return _regenerator.default.wrap(function _callee21$(_context21) { while (1) { switch (_context21.prev = _context21.next) { case 0: _context21.prev = 0; _context21.next = 3; return dispatch(_utils.api.request({ method: 'PUT', endpoint: 'user', path: '/updateUserTokenBalance' })); case 3: res = _context21.sent; dispatch(updateAuthUser(res)); _context21.next = 10; break; case 7: _context21.prev = 7; _context21.t0 = _context21["catch"](0); Alert.alert(_context21.t0.message); case 10: case "end": return _context21.stop(); } } }, _callee21, null, [[0, 7]]); })); return function (_x18) { return _ref23.apply(this, arguments); }; }(); } //# sourceMappingURL=auth.actions.js.map