react-native-gigya-sdk
Version:
SAP CDC/Gigya SDK for your React Native applications
37 lines (36 loc) • 2.03 kB
JavaScript
import { setState } from './state';
import getState from '../core/getState';
// TODO: Use on smsLogin error.
export default function (type, error) {
return new Promise(async (resolve, reject) => {
try {
var _state$regToken, _error$payload, _state$regToken2, _state$sessionInfo, _error$payload$sessio, _error$payload2;
const state = await getState();
const existingRegToken = (_state$regToken = state.regToken) === null || _state$regToken === void 0 ? void 0 : _state$regToken.value;
const incomingRegToken = error === null || error === void 0 ? void 0 : (_error$payload = error.payload) === null || _error$payload === void 0 ? void 0 : _error$payload.regToken;
const value = incomingRegToken || existingRegToken;
const expirationDate = incomingRegToken && incomingRegToken !== existingRegToken ? new Date(new Date().setHours(new Date().getHours() + 1)) : (_state$regToken2 = state.regToken) === null || _state$regToken2 === void 0 ? void 0 : _state$regToken2.expirationDate;
const isStillValid = expirationDate && new Date(expirationDate).getTime() >= new Date().getTime();
const existingSessionInfo = (_state$sessionInfo = state.sessionInfo) !== null && _state$sessionInfo !== void 0 ? _state$sessionInfo : {};
const incomingSessionInfo = (_error$payload$sessio = error === null || error === void 0 ? void 0 : (_error$payload2 = error.payload) === null || _error$payload2 === void 0 ? void 0 : _error$payload2.sessionInfo) !== null && _error$payload$sessio !== void 0 ? _error$payload$sessio : {};
await setState({
error: error !== null && error !== void 0 ? error : state.error,
authenticationAttempt: {
type
},
regToken: {
value,
expirationDate,
isStillValid
},
sessionInfo: { ...existingSessionInfo,
...incomingSessionInfo
}
});
resolve();
} catch (e) {
reject(e);
}
});
}
//# sourceMappingURL=saveAuthenticationAttempt.js.map