cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
52 lines (41 loc) • 1.43 kB
JavaScript
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() );
}
};
}