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
JavaScript
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));
  };
}