mirror of
https://github.com/datahub-project/datahub.git
synced 2025-10-29 17:59:24 +00:00
81 lines
2.5 KiB
JavaScript
81 lines
2.5 KiB
JavaScript
import { createAction } from 'redux-actions';
|
|
import {
|
|
createLazyRequest,
|
|
fetchPagedEntities,
|
|
fetchNamedEntityNodes,
|
|
fetchNamedPagedEntities
|
|
} from 'wherehows-web/actions/entities';
|
|
import actionSet from 'wherehows-web/actions/action-set';
|
|
|
|
/**
|
|
* Set of actions for Metrics
|
|
* @type {{REQUEST_PAGED_METRICS: string, SELECT_PAGED_METRICS: string, RECEIVE_PAGED_METRICS: string}}
|
|
*/
|
|
const ActionTypes = {
|
|
REQUEST_PAGED_METRICS: actionSet('REQUEST_PAGED_METRICS'),
|
|
SELECT_PAGED_METRICS: actionSet('SELECT_PAGED_METRICS'),
|
|
RECEIVE_PAGED_METRICS: actionSet('RECEIVE_PAGED_METRICS'),
|
|
|
|
REQUEST_PAGED_NAMED_METRICS: actionSet('REQUEST_PAGED_NAMED_METRICS'),
|
|
RECEIVE_PAGED_NAMED_METRICS: actionSet('RECEIVE_PAGED_NAMED_METRICS'),
|
|
|
|
REQUEST_METRICS_NODES: actionSet('REQUEST_METRICS_NODES'),
|
|
RECEIVE_METRICS_NODES: actionSet('RECEIVE_METRICS_NODES')
|
|
};
|
|
|
|
const requestPagedMetrics = createAction(ActionTypes.REQUEST_PAGED_METRICS);
|
|
|
|
const selectPagedMetrics = createAction(ActionTypes.SELECT_PAGED_METRICS);
|
|
|
|
const receivePagedMetrics = createAction(
|
|
ActionTypes.RECEIVE_PAGED_METRICS,
|
|
({ data }) => data,
|
|
// meta data attached to the ActionTypes.RECEIVE_PAGED_METRICS action
|
|
() => ({ receivedAt: Date.now() })
|
|
);
|
|
|
|
const requestPagedNamedMetrics = createAction(ActionTypes.REQUEST_PAGED_NAMED_METRICS);
|
|
|
|
const receivePagedNamedMetrics = createAction(
|
|
ActionTypes.RECEIVE_PAGED_NAMED_METRICS,
|
|
({ data }) => data,
|
|
() => ({ receivedAt: Date.now() })
|
|
);
|
|
|
|
const requestMetricNodes = createAction(ActionTypes.REQUEST_METRICS_NODES);
|
|
const receiveMetricNodes = createAction(
|
|
ActionTypes.RECEIVE_METRICS_NODES,
|
|
response => response,
|
|
// meta data attached to the ActionTypes.RECEIVE_PAGED_METRICS action
|
|
() => ({ receivedAt: Date.now() })
|
|
);
|
|
// async action/thunk creator for ActionTypes.REQUEST_PAGED_METRICS
|
|
const lazyRequestPagedMetrics = createLazyRequest(
|
|
requestPagedMetrics,
|
|
receivePagedMetrics,
|
|
fetchPagedEntities('metrics')
|
|
);
|
|
|
|
// async action/thunk creator for ActionTypes.SELECT_PAGED_METRICS
|
|
const lazySelectPagedMetrics = createLazyRequest(
|
|
selectPagedMetrics,
|
|
receivePagedMetrics,
|
|
fetchPagedEntities('metrics')
|
|
);
|
|
|
|
const lazyRequestMetricNodes = createLazyRequest(requestMetricNodes, receiveMetricNodes, fetchNamedEntityNodes('metrics'));
|
|
|
|
const lazyRequestNamedPagedMetrics = createLazyRequest(
|
|
requestPagedNamedMetrics,
|
|
receivePagedNamedMetrics,
|
|
fetchNamedPagedEntities('metrics')
|
|
);
|
|
|
|
export {
|
|
ActionTypes,
|
|
lazyRequestPagedMetrics,
|
|
lazySelectPagedMetrics,
|
|
lazyRequestMetricNodes,
|
|
lazyRequestNamedPagedMetrics
|
|
};
|