UNPKG

cluedin-widget

Version:

This is the project for creating and managing widgets in CluedIn.

106 lines (85 loc) 2.62 kB
import constants from '../constants'; import providerApi from '../data/provider'; import { unauthorized } from './generic'; import config from '../config' var invalidActiveProviders = () => { return { type: constants.provider.INVALID_PROVIDER }; }; var requestActiveProviders = () => { return { type: constants.provider.REQUEST_ACTIVE_PROVIDERS } }; var receiveActiveProviders = ( providers ) => { return { type: constants.provider.RECEIVE_ACTIVE_PROVIDERS, data: { providers } }; }; var fetchActiveProviders = () => { return function( dispatch ) { dispatch( requestActiveProviders() ); return providerApi.getCurrentProvider().then( function( resp ) { dispatch( receiveActiveProviders( resp.body ) ); } ).catch( unauthorized( dispatch, invalidActiveProviders ) ); }; }; function shouldFetchActiveProviders( state ) { return !( state.provider.providers && state.provider.providers.length > 0); } export function fetchActiveProvidersIfNeeded() { return ( dispatch, getState ) => { if ( shouldFetchActiveProviders( getState() ) ) { return dispatch( fetchActiveProviders() ) } } } export function receiveCrawlerStats( crawlerStats ) { return { type: constants.provider.RECEIVE_CRAWLER_STATS, data: { crawlerStats } } } var requestAllProviders = () => { return { type: constants.provider.REQUEST_ALL_PROVIDERS } }; var receiveAllProviders = ( allProviders ) => { return { type: constants.provider.RECEIVE_ALL_PROVIDERS, data: { allProviders } }; }; var invalidProviders = () => { return { type: constants.provider.INVALID_ALL_PROVIDERS }; }; var fetchAllProviders = () => { return function( dispatch ) { dispatch( requestAllProviders() ); return providerApi.getAllProvider().then( function( resp ) { dispatch( receiveAllProviders( resp.body ) ); } ).catch( unauthorized( dispatch, invalidProviders ) ); }; }; function shouldFetchProviders( state ) { return !( state.provider.allProviders && state.provider.allProviders.length > 0); } export function fetchAllProvidersIfNeeded() { return ( dispatch, getState ) => { if ( shouldFetchProviders( getState() ) ) { return dispatch( fetchAllProviders() ) } } } export function reAuthProvider( provider ) { return providerApi.reAuthProvider( provider ).then( function( url ) { config.location.redirectToUrl( url ); } ); }