cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
55 lines (44 loc) • 1.43 kB
JavaScript
import constants from '../constants';
import { unauthorized } from './generic';
import { getLastTools } from '../data/tools';
import fake from '../../iso/entity/fake';
var shouldFetchGenericLastTools = ( state ) => {
return (!state.genericLastTools || state.genericLastTools.length === 0);
};
var requestGenericLastTools = () => {
return {
type: constants.tool.REQUEST_GENERIC_LAST_TOOLS
};
};
var receiveGenericLastTools = ( tools, fake ) => {
return {
type: constants.tool.RECEIVE_GENERIC_LAST_TOOLS,
data: {
tools: tools,
isFake: fake
}
};
};
var invalidGenericLastTools = () => {
return {
type: constants.tool.INVALID_GENERIC_LAST_TOOLS
};
};
var fetchGenericLastTools = () => {
return function( dispatch ) {
dispatch( requestGenericLastTools() );
return getLastTools().then( function( resp ) {
if ( !resp || resp.length === 0 ) {
return dispatch( receiveGenericLastTools( fake.tool || [], true ) );
}
dispatch( receiveGenericLastTools( resp ) );
} ).catch( unauthorized( dispatch, invalidGenericLastTools ) );
};
};
export function shouldFetchGenericLastTools() {
return ( dispatch, getState ) => {
if ( shouldFetchGenericLastTools( getState() ) ) {
return dispatch( fetchGenericLastTools() );
}
};
}