apisearch-events-ui
Version:
Javascript User Interface to visualize all events data.
63 lines (59 loc) • 1.36 kB
JavaScript
import cloneDeep from 'clone-deep';
import ApisearchDispatcher from '../../dispatcher';
/**
* Get last events action
*
* This action is triggered when mounting a component
* receives two parameters:
* @param queryOptions -> given new query options
* @param appOptions -> current application options
*
* Finally dispatches an event with the modified query.
* @returns {{
* type: string,
* payload: {
* updatedQuery,
* result
* }
* }}
*/
export function getLastQueriesAction(
{
eventType,
from,
to
},
{
currentQuery,
client
}
) {
const clonedQuery = cloneDeep(currentQuery);
clonedQuery
.filterUniverseByDateRange(
'occurred_on_day',
[`${from}..${to}`]
)
.filterByTypes(
[eventType],
true,
['_term', 'asc']
)
.aggregateBy(
'occurred_on_day',
'occurred_on_day',
8,
['_term', 'asc']
)
;
client.events(clonedQuery.toJSON(), (result, error) => {
if (error) return;
ApisearchDispatcher.dispatch({
type: 'LAST_QUERIES__RENDER_DATA',
payload: {
updatedQuery: clonedQuery,
result
}
})
})
}