Sha256: d3c76e92578477a1f1a62fbfc7785e794da2a9f095f48e3b5bd19dbc4f88bbdd

Contents?: true

Size: 1.67 KB

Versions: 2

Compression:

Stored size: 1.67 KB

Contents

import API from 'foremanReact/API';
import { timeToHoursNumber, resolveQuery } from './TasksDashboardHelper';
import {
  FOREMAN_TASKS_DASHBOARD_INIT,
  FOREMAN_TASKS_DASHBOARD_UPDATE_TIME,
  FOREMAN_TASKS_DASHBOARD_UPDATE_QUERY,
  TASKS_DASHBOARD_CURRENT_TIME,
  FOREMAN_TASKS_DASHBOARD_FETCH_TASKS_SUMMARY_REQUEST,
  FOREMAN_TASKS_DASHBOARD_FETCH_TASKS_SUMMARY_SUCCESS,
  FOREMAN_TASKS_DASHBOARD_FETCH_TASKS_SUMMARY_FAILURE,
} from './TasksDashboardConstants';
import { selectTime } from './TasksDashboardSelectors';

export const initializeDashboard = ({ time, query }) => ({
  type: FOREMAN_TASKS_DASHBOARD_INIT,
  payload: { time, query },
});

export const updateTime = time => ({
  type: FOREMAN_TASKS_DASHBOARD_UPDATE_TIME,
  payload: time,
});

export const updateQuery = (query, history) => (dispatch, getState) => {
  if (query.time === TASKS_DASHBOARD_CURRENT_TIME)
    query.time = selectTime(getState());

  resolveQuery(query, history);
  dispatch({
    type: FOREMAN_TASKS_DASHBOARD_UPDATE_QUERY,
    payload: query,
  });
};

export const fetchTasksSummary = time => async dispatch => {
  try {
    dispatch(startRequest());

    const hours = timeToHoursNumber(time);

    const { data } = await API.get(`/foreman_tasks/tasks/summary/${hours}`);

    return dispatch(requestSuccess(data));
  } catch (error) {
    return dispatch(requestFailure(error));
  }
};

const startRequest = () => ({
  type: FOREMAN_TASKS_DASHBOARD_FETCH_TASKS_SUMMARY_REQUEST,
});

const requestSuccess = data => ({
  type: FOREMAN_TASKS_DASHBOARD_FETCH_TASKS_SUMMARY_SUCCESS,
  payload: data,
});

const requestFailure = error => ({
  type: FOREMAN_TASKS_DASHBOARD_FETCH_TASKS_SUMMARY_FAILURE,
  payload: error,
});

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
foreman-tasks-0.17.2 webpack/ForemanTasks/Components/TasksDashboard/TasksDashboardActions.js
foreman-tasks-0.17.1 webpack/ForemanTasks/Components/TasksDashboard/TasksDashboardActions.js