cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
70 lines (56 loc) • 1.61 kB
JavaScript
import constants from '../constants';
import { unauthorized } from './generic';
import { suggestedSearch, search } from '../data/search';
var requestSuggestedSearch = () => {
return {
type: constants.search.REQUEST_SUGGESTED_SEARCH
};
};
var receiveGenericLastTasks = ( query, suggested ) => {
return {
type: constants.search.RECEIVE_SUGGESTED_SEARCH,
data: {
suggestedSearches: suggested,
suggestedSearchQuery: query
}
};
};
var invalidGenericLastTasks = () => {
return {
type: constants.search.INVALID_SUGGESTED_SEARCH
};
};
export function shouldFetchSuggestedSearch( q ) {
return function( dispatch ) {
dispatch( requestSuggestedSearch() );
return suggestedSearch( q ).then( function( resp ) {
dispatch( receiveGenericLastTasks( q, resp ) );
} ).catch( unauthorized( dispatch, invalidGenericLastTasks ) );
};
}
var requestSearch = () => {
return {
type: constants.search.REQUEST_SEARCH
};
};
var receiveSearch = ( searchResult ) => {
return {
type: constants.search.RECEIVE_SEARCH,
data: {
searchResult: searchResult
}
};
};
var invalidSearch = () => {
return {
type: constants.search.INVALID_SEARCH
};
};
export function shouldFetchSearch( q ) {
return function( dispatch ) {
dispatch( requestSearch() );
return search( q ).then( function( resp ) {
dispatch( receiveSearch( resp ) );
} ).catch( unauthorized( dispatch, invalidSearch ) );
};
}