UNPKG

cluedin-widget

Version:

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

54 lines (44 loc) 1.62 kB
import constants from '../constants'; import { unauthorized } from './generic'; import { getLastOrganizations } from '../data/organization'; import fake from '../../iso/entity/fake'; var shouldFetchGenericLastOrganizations = ( state ) => { return (!state.genericLastOrganizations || state.genericLastOrganizations.length === 0); }; var requestGenericLastOrganizations = () => { return { type: constants.organization.REQUEST_GENERIC_LAST_ORGANIZATIONS }; }; var receiveGenericLastOrganizations = ( orgs, fake ) => { return { type: constants.organization.RECEIVE_GENERIC_LAST_ORGANIZATIONS, data: { organizations: orgs, fake: fake } }; }; var invalidGenericLastOrganizations = () => { return { type: constants.organization.INVALID_GENERIC_LAST_ORGANIZATIONS }; }; var fetchGenericLastOrganizations = () => { return function( dispatch ) { dispatch( requestGenericLastOrganizations() ); return getLastOrganizations().then( function( resp ) { if ( !resp || resp.length === 0 ) { return dispatch( receiveGenericLastOrganizations( fake.organization, true ) ); } dispatch( receiveGenericLastOrganizations( resp ) ); } ).catch( unauthorized( dispatch, invalidGenericLastOrganizations ) ); }; }; export function shouldFetchGenericLastOrganizationsIfNeeded() { return ( dispatch, getState ) => { if ( shouldFetchGenericLastOrganizations( getState() ) ) { return dispatch( fetchGenericLastOrganizations() ); } }; }