UNPKG

@okta-dfuhriman/okta-auth-js

Version:
126 lines (118 loc) 3.14 kB
import { sendRequest } from './request'; import { IAPIFunction, BaseTransaction, EmailTransaction, EmailChallengeTransaction } from './types'; /** * @scope: okta.myAccount.email.read */ export const getEmails: IAPIFunction<EmailTransaction[]> = async ( oktaAuth, options? ) => { const transaction = await sendRequest(oktaAuth, { url: '/idp/myaccount/emails', method: 'GET', accessToken: options?.accessToken, transactionClassName: 'EmailTransaction' }) as EmailTransaction[]; return transaction; }; /** * @scope: okta.myAccount.email.read */ export const getEmail: IAPIFunction<EmailTransaction> = async ( oktaAuth, options ) => { const { id, accessToken } = options!; const transaction = await sendRequest(oktaAuth, { url: `/idp/myaccount/emails/${id}`, method: 'GET', accessToken, transactionClassName: 'EmailTransaction' }) as EmailTransaction; return transaction; }; /** * @scope: okta.myAccount.email.manage */ export const addEmail: IAPIFunction<EmailTransaction> = async ( oktaAuth, options ): Promise<EmailTransaction> => { const { accessToken, payload } = options!; const transaction = await sendRequest(oktaAuth, { url: '/idp/myaccount/emails', method: 'POST', payload, accessToken, transactionClassName: 'EmailTransaction' }) as EmailTransaction; return transaction; }; /** * @scope: okta.myAccount.email.manage */ export const deleteEmail: IAPIFunction<BaseTransaction> = async ( oktaAuth, options ) => { const { id, accessToken } = options!; const transaction = await sendRequest(oktaAuth, { url: `/idp/myaccount/emails/${id}`, method: 'DELETE', accessToken }) as BaseTransaction; return transaction; }; /** * @scope: okta.myAccount.email.read */ export const sendEmailChallenge: IAPIFunction<EmailChallengeTransaction> = async ( oktaAuth, options ) => { const { id, accessToken } = options!; const transaction = await sendRequest(oktaAuth, { url: `/idp/myaccount/emails/${id}/challenge`, method: 'POST', accessToken, transactionClassName: 'EmailChallengeTransaction' }) as EmailChallengeTransaction; return transaction; }; /** * @scope: okta.myAccount.email.read */ export const getEmailChallenge: IAPIFunction<EmailChallengeTransaction> = async ( oktaAuth, options ) => { const { emailId, challengeId, accessToken } = options!; const transaction = await sendRequest(oktaAuth, { url: `/idp/myaccount/emails/${emailId}/challenge/${challengeId}`, method: 'POST', accessToken, transactionClassName: 'EmailChallengeTransaction' }) as EmailChallengeTransaction; return transaction; }; /** * @scope: okta.myAccount.email.manage */ export const verifyEmailChallenge: IAPIFunction<BaseTransaction> = async ( oktaAuth, options ) => { const { emailId, challengeId, payload, accessToken } = options!; const transaction = await sendRequest(oktaAuth, { url: `/idp/myaccount/emails/${emailId}/challenge/${challengeId}/verify`, method: 'POST', payload, accessToken }) as BaseTransaction; return transaction; };