webpack/scenes/Subscriptions/Manifest/ManifestActions.js
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;