UNPKG

@okta-dfuhriman/okta-auth-js

Version:
68 lines (62 loc) 1.98 kB
import { ChallengePhonePayload, PhoneProfile, Status, VerificationPayload } from '../types'; import BaseTransaction from './Base'; import { generateRequestFnFromLinks } from '../request'; export default class PhoneTransaction extends BaseTransaction { id: string; profile: PhoneProfile; status: Status; // eslint-disable-next-line no-use-before-define get: () => Promise<PhoneTransaction>; delete: () => Promise<BaseTransaction>; challenge: (payload: ChallengePhonePayload) => Promise<BaseTransaction>; verify?: (payload: VerificationPayload) => Promise<BaseTransaction>; constructor(oktaAuth, options) { super(oktaAuth, options); const { res, accessToken } = options; // assign required fields from res const { id, profile, status, _links } = res; this.id = id; this.profile = profile; this.status = status; // assign transformed fns to transaction this.get = async () => { const fn = generateRequestFnFromLinks({ oktaAuth, accessToken, methodName: 'get', links: _links, transactionClassName: 'PhoneTransaction' }); return await fn() as PhoneTransaction; }; this.delete = async () => { const fn = generateRequestFnFromLinks({ oktaAuth, accessToken, methodName: 'delete', links: _links }); return await fn() as BaseTransaction; }; this.challenge = async (payload) => { const fn = generateRequestFnFromLinks({ oktaAuth, accessToken, methodName: 'challenge', links: _links }); return await fn(payload) as BaseTransaction; }; if (_links.verify) { this.verify = async (payload) => { const fn = generateRequestFnFromLinks({ oktaAuth, accessToken, methodName: 'verify', links: _links }); return await fn(payload) as BaseTransaction; } ; } } }