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.

191 lines (157 loc) 4.1 kB
import constants from '../constants'; import { unauthorized } from './generic'; import { getAll, getAllSearches, clearCount, clearSearchCount, subscribeSearch as subscribeSearchRequest, unSubscribeSearch as unSubscribeSearchRequest, } from '../data/insight'; const requestAllInsights = () => ({ type: constants.insights.REQUEST_ALL_INSIGHTS, }); const receiveAllInsights = (insights) => ({ type: constants.insights.RECEIVE_ALL_INSIGHTS, data: { insights, }, }); const invalidAllInsights = () => ({ type: constants.insights.INVALID_ALL_INSIGHTS, }); const requestAllSearches = () => ({ type: constants.insights.REQUEST_ALL_SEARCHES, }); const receiveAllSearches = (searches) => ({ type: constants.insights.RECEIVE_ALL_SEARCHES, data: { searches, }, }); const invalidAllSearches = () => ({ type: constants.insights.INVALID_ALL_SEARCHES, }); export function fetchAllInsights() { return (dispatch, getState) => { if (getState().insight.insights.length > 0) { return; } dispatch(requestAllInsights()); getAll().then((resp) => { dispatch(receiveAllInsights(resp)); }).catch(unauthorized(dispatch, invalidAllInsights)); }; } export function fetchAllSearchesInsights() { return (dispatch, getState) => { if (getState().insight.searches.length > 0) { return; } dispatch(requestAllSearches()); getAllSearches().then((resp) => { dispatch(receiveAllSearches(resp)); }).catch(unauthorized(dispatch, invalidAllSearches)); }; } const requestClearCount = (id) => ({ type: constants.insights.REQUEST_CLEAR_COUNT, data: { id, }, }); const receiveClearCount = (id) => ({ type: constants.insights.RECEIVE_CLEAR_COUNT, data: { id, }, }); const invalidClearCount = () => ({ type: constants.insights.INVALID_CLEAR_COUNT, }); export function resetCount(id) { return (dispatch) => { dispatch(requestClearCount(id)); clearCount(id).then(() => { dispatch(receiveClearCount(id)); }).catch(unauthorized(dispatch, invalidClearCount)); }; } const receiveSearchClearCount = (id) => ({ type: constants.insights.RECEIVE_SEARCH_CLEAR_COUNT, data: { id, }, }); const requestSearchClearCount = (id) => ({ type: constants.insights.REQUEST_SEARCH_CLEAR_COUNT, data: { id, }, }); const invalidSearchClearCount = () => ({ type: constants.insights.INVALID_SEARCH_CLEAR_COUNT, }); export function resetSearchCount(id) { return (dispatch) => { dispatch(requestSearchClearCount(id)); return clearSearchCount(id).then(() => { dispatch(receiveSearchClearCount(id)); }).catch(unauthorized(dispatch, invalidSearchClearCount)); }; } const requestSubscribeSearch = (q) => ({ type: constants.insights.REQUEST_SUBSCRIBE_SEARCH, data: { q, }, }); const receiveSubscribeSearch = (q) => ({ type: constants.insights.RECEIVE_SUBSCRIBE_SEARCH, data: { q, }, }); const invalidSubscribeSearch = (q) => ({ type: constants.insights.INVALID_SUBSCRIBE_SEARCH, data: { q, }, }); export function subscribeSearch(q) { return (dispatch) => { dispatch(requestSubscribeSearch(q)); return subscribeSearchRequest(q).then(() => { dispatch(receiveSubscribeSearch(q)); }).catch(unauthorized(dispatch, invalidSubscribeSearch)); }; } const requestUnSubscribeSearch = (q) => ({ type: constants.insights.REQUEST_UNSUBSCRIBE_SEARCH, data: { q, }, }); const receiveUnSubscribeSearch = (q) => ({ type: constants.insights.RECEIVE_UNSUBSCRIBE_SEARCH, data: { q, }, }); const invalidUnSubscribeSearch = (q) => ({ type: constants.insights.INVALID_UNSUBSCRIBE_SEARCH, data: { q, }, }); export const resetNotificationForSearch = () => ({ type: constants.insights.RESET_NOTIFICATION_FOR_SEARCH, }); export function unSubscribeSearch(q) { return (dispatch) => { dispatch(requestUnSubscribeSearch(q)); return unSubscribeSearchRequest(q).then(() => { dispatch(receiveUnSubscribeSearch(q)); }).catch(unauthorized(dispatch, invalidUnSubscribeSearch)); }; }