UNPKG

react-native-gigya-sdk

Version:
59 lines (49 loc) 1.63 kB
import type { GigyaSdkAccountInfoType, GigyaSdkRegisteredAccountType, } from '../types' import setSession from './setSession' import getAccountInfo from './getAccountInfo' import acceptConsentSchemas from './acceptConsentSchemas' import finalizeRegistration from './finalizeRegistration' import resendVerificationEmail from './resendVerificationEmail' import getUnacceptedConsentSchemas from './getUnacceptedConsentSchemas' export default function (options?: { noFinalize?: boolean noSetSession?: boolean }): Promise<GigyaSdkAccountInfoType | GigyaSdkRegisteredAccountType> { return new Promise(async (resolve, reject) => { try { const unacceptedConsentSchemas = await getUnacceptedConsentSchemas< string[] >() if (unacceptedConsentSchemas) { await acceptConsentSchemas(unacceptedConsentSchemas, { noUID: true, }) } const account = await getAccountInfo({ noUID: true }) if (!account.isVerified) { await resendVerificationEmail({ noUID: true }) return reject({ actionRequired: { type: 'emailVerification' } }) } if (!account.isRegistered && !options?.noFinalize) { const response = await finalizeRegistration(options) if (!options?.noSetSession) { try { await setSession( response.sessionInfo.sessionToken, response.sessionInfo.sessionSecret ) } catch (e) { console.log(e) } } return resolve(response) } resolve(account) } catch (e) { reject(e) } }) }