@wenn/onb
Version:
onb-core
67 lines (57 loc) • 1.76 kB
JavaScript
import { SAVE_CAMUNDA } from '../constants';
import { loadingPage } from './loading.actions';
import Camunda from '../../services/Camunda';
import { stompClient } from './run.actions';
import { validateSendSchema } from './../../utils/alerts';
const { REACT_APP_ENV } = process.env;
const devEnviroment = REACT_APP_ENV === 'dev' || REACT_APP_ENV === 'stage' || window.log === 'true';
function saveCamundaRedux(camunda) {
return {
type: SAVE_CAMUNDA,
camunda
};
}
export function sendToCamunda(page, args = {}) {
return (dispatch, getState) => {
dispatch(loadingPage(true));
const {
camunda: allObject,
settings: {
utils: { SMS, metadata },
config: { CAMUNDA: camundaUrl, camundaObjects, alerts }
}
} = getState();
const state = camundaObjects[page].reduce((obj, p) => {
obj[p] = allObject[p];
return obj;
}, {});
const camunda = new Camunda();
const object = camunda.buildObject(camundaUrl, SMS.SEND.STEP, { ...state, ...args }, metadata);
// CONSOLE SEND CAMUNDA
if (devEnviroment) console.log('SEND-CAMUNDA-DATA:::', JSON.stringify(object));
if (page && object && alerts && alerts.send) {
validateSendSchema(page, object, alerts.send);
}
stompClient.publish({
destination: SMS.SEND_TO,
body: JSON.stringify(object)
});
};
}
export function saveCamunda(data) {
return (dispatch, getState) => {
let allObject = getState().camunda;
for (const value in data) {
if (data.hasOwnProperty(value)) {
allObject = {
...allObject,
[value]: {
type: 'String',
value: data[value]
}
};
}
}
dispatch(saveCamundaRedux(allObject));
};
}