Katello/katello

View on GitHub
webpack/scenes/Subscriptions/Manifest/ManifestActions.js

Summary

Maintainability
F
3 days
Test Coverage
import { propsToSnakeCase } from 'foremanReact/common/helpers';

import api, { orgId } from '../../../services/api';
import { apiError } from '../../../utils/helpers.js';

import {
  UPLOAD_MANIFEST_REQUEST,
  UPLOAD_MANIFEST_SUCCESS,
  UPLOAD_MANIFEST_FAILURE,
  REFRESH_MANIFEST_REQUEST,
  REFRESH_MANIFEST_SUCCESS,
  REFRESH_MANIFEST_FAILURE,
  DELETE_MANIFEST_REQUEST,
  DELETE_MANIFEST_SUCCESS,
  DELETE_MANIFEST_FAILURE,
  MANIFEST_HISTORY_REQUEST,
  MANIFEST_HISTORY_SUCCESS,
  MANIFEST_HISTORY_FAILURE,
  ENABLE_SIMPLE_CONTENT_ACCESS_REQUEST,
  ENABLE_SIMPLE_CONTENT_ACCESS_SUCCESS,
  ENABLE_SIMPLE_CONTENT_ACCESS_FAILURE,
  DISABLE_SIMPLE_CONTENT_ACCESS_REQUEST,
  DISABLE_SIMPLE_CONTENT_ACCESS_SUCCESS,
  DISABLE_SIMPLE_CONTENT_ACCESS_FAILURE,
  SIMPLE_CONTENT_ACCESS_ELIGIBLE_REQUEST,
  SIMPLE_CONTENT_ACCESS_ELIGIBLE_SUCCESS,
  SIMPLE_CONTENT_ACCESS_ELIGIBLE_FAILURE,
} from './ManifestConstants';

export const uploadManifest = file => async (dispatch) => {
  dispatch({ type: UPLOAD_MANIFEST_REQUEST });

  const formData = new FormData();
  formData.append('content', file);

  const config = {
    'Content-Type': 'multipart/form-data',
  };

  try {
    const { data } = await api.post(`/organizations/${orgId()}/subscriptions/upload`, formData, config);
    return dispatch({
      type: UPLOAD_MANIFEST_SUCCESS,
      response: data,
    });
  } catch (error) {
    return dispatch(apiError(UPLOAD_MANIFEST_FAILURE, error));
  }
};

export const refreshManifest = (extendedParams = {}) => async (dispatch) => {
  dispatch({ type: REFRESH_MANIFEST_REQUEST });

  const params = {
    ...propsToSnakeCase(extendedParams),
  };

  try {
    const { data } = await api.put(`/organizations/${orgId()}/subscriptions/refresh_manifest`, {}, params);
    return dispatch({
      type: REFRESH_MANIFEST_SUCCESS,
      response: data,
    });
  } catch (error) {
    return dispatch(apiError(REFRESH_MANIFEST_FAILURE, error));
  }
};

export const deleteManifest = (extendedParams = {}) => async (dispatch) => {
  dispatch({ type: DELETE_MANIFEST_REQUEST });

  const params = {
    ...propsToSnakeCase(extendedParams),
  };

  try {
    const { data } = await api.post(`/organizations/${orgId()}/subscriptions/delete_manifest`, {}, params);
    return dispatch({
      type: DELETE_MANIFEST_SUCCESS,
      response: data,
    });
  } catch (error) {
    return dispatch(apiError(DELETE_MANIFEST_FAILURE, error));
  }
};

export const checkSimpleContentAccessEligible = () => async (dispatch) => {
  dispatch({ type: SIMPLE_CONTENT_ACCESS_ELIGIBLE_REQUEST });

  try {
    const { data } = await api.get(`/organizations/${orgId()}/simple_content_access/eligible`, {});
    return dispatch({
      type: SIMPLE_CONTENT_ACCESS_ELIGIBLE_SUCCESS,
      response: data,
    });
  } catch (error) {
    return dispatch(apiError(SIMPLE_CONTENT_ACCESS_ELIGIBLE_FAILURE, error));
  }
};

export const enableSimpleContentAccess = (extendedParams = {}) => async (dispatch) => {
  dispatch({ type: ENABLE_SIMPLE_CONTENT_ACCESS_REQUEST });

  const params = {
    ...propsToSnakeCase(extendedParams),
  };

  try {
    const { data } = await api.put(`/organizations/${orgId()}/simple_content_access/enable`, {}, params);
    return dispatch({
      type: ENABLE_SIMPLE_CONTENT_ACCESS_SUCCESS,
      response: data,
    });
  } catch (error) {
    return dispatch(apiError(ENABLE_SIMPLE_CONTENT_ACCESS_FAILURE, error));
  }
};

export const disableSimpleContentAccess = (extendedParams = {}) => async (dispatch) => {
  dispatch({ type: DISABLE_SIMPLE_CONTENT_ACCESS_REQUEST });

  const params = {
    ...propsToSnakeCase(extendedParams),
  };

  try {
    const { data } = await api.put(`/organizations/${orgId()}/simple_content_access/disable`, {}, params);
    return dispatch({
      type: DISABLE_SIMPLE_CONTENT_ACCESS_SUCCESS,
      response: data,
    });
  } catch (error) {
    return dispatch(apiError(DISABLE_SIMPLE_CONTENT_ACCESS_FAILURE, error));
  }
};

export const loadManifestHistory = (extendedParams = {}) => async (dispatch) => {
  dispatch({ type: MANIFEST_HISTORY_REQUEST });

  const params = {
    ...propsToSnakeCase(extendedParams),
  };

  try {
    const { data } = await api.get(`/organizations/${orgId()}/subscriptions/manifest_history`, {}, params);
    return dispatch({
      type: MANIFEST_HISTORY_SUCCESS,
      response: data,
    });
  } catch (error) {
    return dispatch(apiError(MANIFEST_HISTORY_FAILURE, error));
  }
};

export default loadManifestHistory;