UNPKG

cluedin-widget

Version:

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

52 lines (41 loc) 1.43 kB
import constants from '../constants'; import { unauthorized } from './generic'; import { getLastGenericIssues } from '../data/issue'; import fake from '../../iso/entity/fake'; var shouldFetchGenericLastIssues = ( state ) => { return (!state.genericLastIssues || state.genericLastIssues.length === 0); }; var requestGenericLastIssues = () => { return { type: constants.issue.REQUEST_GENERIC_LAST_ISSUES }; }; var receiveGenericLastIssues = ( issues, isFake ) => { return { type: constants.issue.RECEIVE_GENERIC_LAST_ISSUES, data: { issues, isFake } }; }; var invalidGenericLastIssues = () => { return { type: constants.issue.INVALID_GENERIC_LAST_ISSUES }; }; var fetchGenericLastIssues = () => { return function( dispatch ) { dispatch( requestGenericLastIssues() ); return getLastGenericIssues().then( function( resp ) { if ( !resp || resp.length === 0 ) { return dispatch( receiveGenericLastIssues( fake.issue, true ) ); } dispatch( receiveGenericLastIssues( resp ) ); } ).catch( unauthorized( dispatch, invalidGenericLastIssues ) ); }; }; export function shouldFetchGenericLastIssuesIfNeeded() { return ( dispatch, getState ) => { if ( shouldFetchGenericLastIssues( getState() ) ) { return dispatch( fetchGenericLastIssues() ); } }; }