UNPKG

@okta-dfuhriman/okta-auth-js

Version:
53 lines (47 loc) 1.49 kB
import EmailStatusTransaction from './EmailStatusTransaction'; import { EmailProfile, Status, VerificationPayload, } from '../types'; import BaseTransaction from './Base'; import { generateRequestFnFromLinks } from '../request'; export default class EmailChallengeTransaction extends BaseTransaction { id: string; expiresAt: string; profile: EmailProfile; status: Status; poll: () => Promise<EmailStatusTransaction>; // eslint-disable-next-line no-use-before-define verify: (payload: VerificationPayload) => Promise<EmailChallengeTransaction>; constructor(oktaAuth, options) { super(oktaAuth, options); const { accessToken, res } = options; // assign required fields from res const { id, expiresAt, profile, status, _links } = res; this.id = id; this.expiresAt = expiresAt; this.profile = profile; this.status = status; // assign transformed fns to transaction this.poll = async () => { const fn = generateRequestFnFromLinks({ oktaAuth, accessToken, methodName: 'poll', links: _links, transactionClassName: 'EmailStatusTransaction' }); return await fn() as EmailStatusTransaction; }; this.verify = async (payload) => { const fn = generateRequestFnFromLinks({ oktaAuth, accessToken, methodName: 'verify', links: _links, }); return await fn(payload) as EmailChallengeTransaction; }; } }