UNPKG

cluedin-widget

Version:

This project contains all the pages needed for browsing entities and searching them. The aim is to replace the CluedIn.Webapp project with this one when all the pages ( including the Admin page ) will be ported to REACT.

126 lines (109 loc) 4.1 kB
import iso from '../../iso'; import constants from '../constants'; const initialState = { providers: [], isFetching: false, crawlerStats: {}, isFetchingAll: false, allProviders: [], allProviderStats: [], isBusy: false, skipBusy: false, }; export default function update(state = initialState, action = {}) { switch (action.type) { case constants.provider.RECEIVE_SKIP_BUSY: return Object.assign({}, state, { skipBusy: action.data.skipBusy, }); case constants.provider.REQUEST_ALL_PROVIDERS: return Object.assign({}, state, { isFetchingAll: true, }); case constants.provider.RECEIVE_ALL_PROVIDERS: return Object.assign({}, state, { isFetching: false, isFetchingAll: false, allProviders: action.data.allProviders, }); case constants.provider.REQUEST_ACTIVE_PROVIDERS: return Object.assign({}, state, { isFetching: true, }); case constants.provider.RECEIVE_ACTIVE_PROVIDERS_FOR_UPDATE: let allProvidersStatsForUpdate = action.data.providers.map((p) => { let result = p.Stats; if (result) { result.original = p; } return result; }); allProvidersStatsForUpdate = iso.array.compact(allProvidersStatsForUpdate); let oneOfProviderWithBusyStateForUpdate = allProvidersStatsForUpdate.find((p) => { let status = p.ProviderStatus; return (status.State === 'Queued' || status.State === 'Crawling' || status.State === 'Processing'); }); return Object.assign({}, state, { providers: action.data.providers, allProviderStats: [...allProvidersStatsForUpdate], isBusy: oneOfProviderWithBusyStateForUpdate ? true : false, }); case constants.provider.RECEIVE_ACTIVE_PROVIDERS: let allProvidersStats = action.data.providers.map((p) => { let result = p.Stats; if (result) { result.original = p; } return result; }); allProvidersStats = iso.array.compact(allProvidersStats); let oneOfProviderWithBusyState = allProvidersStats.find((p) => { let status = p.ProviderStatus; return (status.State === 'Queued' || status.State === 'Crawling' || status.State === 'Processing'); }); return Object.assign({}, state, { providers: action.data.providers, isFetching: false, allProviderStats: [...allProvidersStats], isBusy: oneOfProviderWithBusyState ? true : false, }); /* case constants.provider.RECEIVE_CRAWLER_STATS: let newCrawlerStats = Object.assign( {}, state.crawlerStats ); let allProvidersStatsForCrawler = state.allProviderStats; let configurationToUpdate = action.data.crawlerStats.integrationId; let state = action.data.crawlerStats.crawlerInfo.State; let relatedProviderStats = allProvidersStatsForCrawler.find( ( p )=> { return p.ConfigurationId === configurationToUpdate; } ); if( relatedProviderStats ) { if( state == 0 ) { relatedProviderStats.ProviderStatus.State = "Idle" } if( state == 1 ) { relatedProviderStats.ProviderStatus.State = "Queued" } if( state == 2 ) { relatedProviderStats.ProviderStatus.State = "Crawling" } if( state == 3 ) { relatedProviderStats.ProviderStatus.State = "Processing" } if( state == 4 ) { relatedProviderStats.ProviderStatus.State = "Finished" } } newCrawlerStats[ action.data.crawlerStats.integrationId ] = action.data.crawlerStats; let oneOfProviderWithBusyState2 = allProvidersStatsForCrawler.find( ( p )=> { let status = p.ProviderStatus; return (status.State === "Queued" || status.State === "Crawling" || status.State === "Processing"); } ); return Object.assign( state, { crawlerStats: newCrawlerStats, allProviderStats: [ ...allProvidersStatsForCrawler ], isBusy: oneOfProviderWithBusyState2 ? true : false } ); break;*/ default: return state; } };