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