How to use the @commercetools-frontend/constants.LOGOUT_REASONS.UNAUTHORIZED function in @commercetools-frontend/constants

To help you get started, we’ve selected a few @commercetools-frontend/constants examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github commercetools / merchant-center-application-kit / packages / actions-global / src / global.js View on Github external
export const handleActionError = (error, source) => dispatch => {
  // On production we send the errors to Sentry.
  // eslint-disable-next-line no-console
  if (window.app.env !== 'production') console.error(error, error.stack);

  // logout when unauthorized
  if (error.statusCode === STATUS_CODES.UNAUTHORIZED) {
    browserHistory.push(`/logout?reason=${LOGOUT_REASONS.UNAUTHORIZED}`);
  }

  // We need to do the return, because if not we see an error notification
  // The error is handled with the handleUnavailableResource HoC to show the PageNotFound component
  // when the api returns 404
  if (error.statusCode === STATUS_CODES.NOT_FOUND) return null;

  // All native errors that might occur within a Promise handler,
  // are caught here as well. In this case we dispatch an unexpected
  // error notification.
  if (!error.statusCode)
    return dispatch(showUnexpectedErrorNotification({ source, error }));

  const hasListOfErrors = error.body.errors && Array.isArray(error.body.errors);
  return dispatch(
    showApiErrorNotification({
github commercetools / merchant-center-application-kit / packages / actions-global / src / actions / handle-action-error.ts View on Github external
return (
    dispatch: Dispatch<
      | ReturnType
      | ReturnType
    >
  ) => {
    // On production we send the errors to Sentry.
    // eslint-disable-next-line no-console
    if (window.app.env !== 'production')
      console.error(error, error instanceof Error && error.stack);

    if (!isApiError(error)) return dispatch(showUnexpectedErrorNotification());

    // logout when unauthorized
    if (error.statusCode === STATUS_CODES.UNAUTHORIZED) {
      browserHistory.push(`/logout?reason=${LOGOUT_REASONS.UNAUTHORIZED}`);
    }

    // We need to do the return, because if not we see an error notification
    // The error is handled with the handleUnavailableResource HoC to show the PageNotFound component
    // when the api returns 404
    if (error.statusCode === STATUS_CODES.NOT_FOUND) return null;

    return dispatch(
      showApiErrorNotification({
        errors: error.body.errors || [
          // Pass a fallback error so that our error components can handle it
          { message: error.body.message },
        ],
      })
    );
  };
github commercetools / merchant-center-application-kit / packages / application-shell / src / apollo-links / error-link.js View on Github external
({ graphQLErrors, networkError, operation, forward }) => {
    if (networkError && networkError.statusCode === STATUS_CODES.UNAUTHORIZED) {
      history.push(`/logout?reason=${LOGOUT_REASONS.UNAUTHORIZED}`);
    }
    // In case of graphql errors, we want to retry unauthenticated requests by
    // forcing our API to fetch a new token, using the `X-Force-Token` header.
    // https://www.apollographql.com/docs/link/links/error/#retrying-failed-requests
    // We need to do this as the `token-retry-link` only works for network errors.
    // https://www.apollographql.com/docs/link/links/retry/
    if (graphQLErrors) {
      for (const err of graphQLErrors) {
        if (err.extensions && err.extensions.code === 'UNAUTHENTICATED') {
          operation.setContext(({ headers }) => ({
            headers: {
              ...headers,
              'X-Force-Token': true,
            },
          }));
          // retry the request, returning the new observable
github commercetools / merchant-center-application-kit / packages / application-shell / src / components / application-shell / application-shell.spec.js View on Github external
it('should pass queryParams', () => {
        expect(renderWrapper).toHaveProp('queryParams', {
          reason: LOGOUT_REASONS.UNAUTHORIZED,
          redirectTo: `${window.location.origin}${routerProps.location.pathname}`,
        });
      });
    });
github commercetools / merchant-center-application-kit / packages / application-shell / src / components / application-shell / application-shell.spec.js View on Github external
it('should redirect to "/logout" with reason unauthorized', async () => {
    const rendered = renderApp();
    const queryParams = encode({
      reason: LOGOUT_REASONS.UNAUTHORIZED,
    });
    await wait(() => {
      expect(window.location.replace).toHaveBeenCalledWith(
        expect.stringContaining(`/logout?${queryParams}`)
      );
      expect(rendered.queryByText('OK')).not.toBeInTheDocument();
    });
  });
});
github commercetools / merchant-center-application-kit / packages / application-shell / src / apollo-links / error-link.spec.js View on Github external
it('should redirect to the login page', () => {
      expect(history.push).toHaveBeenCalledWith(
        `/logout?reason=${LOGOUT_REASONS.UNAUTHORIZED}`
      );
    });
  });
github commercetools / merchant-center-application-kit / packages / application-shell / src / components / application-shell / application-shell.spec.js View on Github external
it('redirect to /login with reason "unauthorized"', async () => {
    const rendered = renderApp(null, { route: '/foo' });
    const queryParams = encode({
      reason: LOGOUT_REASONS.UNAUTHORIZED,
      redirectTo: `${window.location.origin}/foo`,
    });
    await wait(() => {
      expect(window.location.replace).toHaveBeenCalledWith(
        `${window.location.origin}/login?${queryParams}`
      );
      expect(rendered.queryByText('OK')).not.toBeInTheDocument();
    });
  });
});
github commercetools / merchant-center-application-kit / packages / application-shell / src / components / application-shell / application-shell.js View on Github external
reason: (() => {
                    if (hasUnauthorizedError)
                      return LOGOUT_REASONS.UNAUTHORIZED;
                    else if (hasUserBeenDeletedError)
                      return LOGOUT_REASONS.DELETED;
                  })(),
                }}
github commercetools / merchant-center-application-kit / packages / application-shell / src / components / login / login.js View on Github external
);
        return (
          
            
          
        );
      }
      case LOGOUT_REASONS.USER:
        return (
          
            
          
        );
      case LOGOUT_REASONS.UNAUTHORIZED:
        return (
          
            
          
        );
      case LOGOUT_REASONS.INVALID:
        return (
          
            
          
        );
      default:
        return (
          
            {error.message}

@commercetools-frontend/constants

Shared constants for MC applications

MIT
Latest version published 3 days ago

Package Health Score

87 / 100
Full package analysis