import React, { useMemo } from 'react'; import get from 'lodash/get'; import AwsV4Auth from './AwsV4Auth'; import BearerAuth from './BearerAuth'; import BasicAuth from './BasicAuth'; import DigestAuth from './DigestAuth'; import WsseAuth from './WsseAuth'; import NTLMAuth from './NTLMAuth'; import OAuth1 from './OAuth1'; import { updateAuth } from 'providers/ReduxStore/slices/collections'; import { saveRequest } from 'providers/ReduxStore/slices/collections/actions'; import { useDispatch } from 'react-redux'; import ApiKeyAuth from './ApiKeyAuth'; import EdgeGridAuth from './EdgeGridAuth'; import StyledWrapper from './StyledWrapper'; import { humanizeRequestAuthMode } from 'utils/collections'; import OAuth2 from './OAuth2/index'; import { getEffectiveAuthSource } from 'utils/auth'; const Auth = ({ item, collection }) => { const dispatch = useDispatch(); const authMode = item.draft ? get(item, 'draft.request.auth.mode') : get(item, 'request.auth.mode'); // Create a request object to pass to the auth components const request = item.draft ? get(item, 'draft.request', {}) : get(item, 'request', {}); // Save function for request level const save = () => { return dispatch(saveRequest(item.uid, collection.uid)); }; const inheritedSource = useMemo( () => (authMode === 'inherit' ? getEffectiveAuthSource(collection, item) : null), [authMode, item, collection] ); const getAuthView = () => { switch (authMode) { case 'none': { return
No Auth
; } case 'awsv4': { return ; } case 'basic': { return ; } case 'bearer': { return ; } case 'digest': { return ; } case 'ntlm': { return ; } case 'oauth1': { return ; } case 'oauth2': { return ; } case 'wsse': { return ; } case 'apikey': { return ; } case 'akamai-edgegrid': { return ; } case 'inherit': { return ( <>
Auth inherited from {inheritedSource.name}:
{humanizeRequestAuthMode(inheritedSource.auth?.mode)}
); } } }; return ( {getAuthView()} ); }; export default Auth;