Sha256: 3c041fa3e28e0c15fee5a2dfe301afb7de3f0040716154cd2a14efe1f9659612

Contents?: true

Size: 1.36 KB

Versions: 11

Compression:

Stored size: 1.36 KB

Contents

import { addToast } from 'foremanReact/redux/actions/toasts';
import { propsToSnakeCase } from 'foremanReact/common/helpers';
import { get } from 'foremanReact/redux/API';
import { stopInterval, withInterval } from 'foremanReact/redux/middlewares/IntervalMiddleware';
import { foremanTasksApi } from '../../services/api';
import { bulkSearchKey, pollTaskKey, taskFinishedToast } from './helpers';

export const toastTaskFinished = task => async dispatch =>
  dispatch(addToast(taskFinishedToast(task)));

const taskBulkSearchParams = params => ({
  search: Object.entries(propsToSnakeCase(params))
    .map((item) => {
      if (item[0] === 'action') {
        return `${item[0]}~${item[1]}`;
      }
      return `${item[0]}=${item[1]}`;
    })
    .join(' and '),
});

const getTasks = (key, params = {}) => get({
  key,
  url: `${foremanTasksApi.baseApiPath}/tasks`,
  params: taskBulkSearchParams(params),
});

export const startPollingTasks = (key, taskSearchParams = {}) =>
  withInterval(getTasks(bulkSearchKey(key), taskSearchParams));

export const stopPollingTasks = key => stopInterval(bulkSearchKey(key));

const getTask = (key, task) => get({
  key,
  url: `${foremanTasksApi.baseApiPath}/tasks/${task.id}`,
});

export const startPollingTask = (key, task) =>
  withInterval(getTask(pollTaskKey(key), task));

export const stopPollingTask = key => stopInterval(pollTaskKey(key));

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
katello-3.15.3.1 webpack/scenes/Tasks/TaskActions.js
katello-3.15.3 webpack/scenes/Tasks/TaskActions.js
katello-3.15.2 webpack/scenes/Tasks/TaskActions.js
katello-3.16.0.rc2 webpack/scenes/Tasks/TaskActions.js
katello-3.15.1.1 webpack/scenes/Tasks/TaskActions.js
katello-3.16.0.rc1.1 webpack/scenes/Tasks/TaskActions.js
katello-3.15.1 webpack/scenes/Tasks/TaskActions.js
katello-3.16.0.rc1 webpack/scenes/Tasks/TaskActions.js
katello-3.15.0.1 webpack/scenes/Tasks/TaskActions.js
katello-3.15.0 webpack/scenes/Tasks/TaskActions.js
katello-3.15.0.rc2 webpack/scenes/Tasks/TaskActions.js