PromucFlow_constructor/app/client/src/transformers/RestActionTransformer.ts

69 lines
2.0 KiB
TypeScript
Raw Normal View History

import {
HTTP_METHODS,
POST_BODY_FORMAT_OPTIONS,
} from "constants/ApiEditorConstants";
2019-12-23 12:12:58 +00:00
export const transformRestAction = (data: any, extraFormData?: any): any => {
2019-12-23 12:12:58 +00:00
let action = { ...data };
if (data.actionConfiguration.httpMethod === HTTP_METHODS[0]) {
delete action.actionConfiguration.body;
}
2020-01-08 09:19:00 +00:00
if (
data.actionConfiguration.queryParameters &&
data.actionConfiguration.queryParameters.length
) {
2019-12-23 12:12:58 +00:00
const path = data.actionConfiguration.path;
if (path && path.indexOf("?") > -1) {
action = {
...data,
actionConfiguration: {
...data.actionConfiguration,
path: path.substr(0, path.indexOf("?")),
},
};
}
}
if (extraFormData && extraFormData?.displayFormat) {
const { displayFormat } = extraFormData;
if (displayFormat.value === POST_BODY_FORMAT_OPTIONS[0].value) {
if (data.actionConfiguration.body && data.actionConfiguration.body[0]) {
const body = data.actionConfiguration.body[0];
action = {
...data,
actionConfiguration: {
...data.actionConfiguration,
body,
},
};
}
} else if (displayFormat.value === POST_BODY_FORMAT_OPTIONS[1].value) {
if (data.actionConfiguration.body && data.actionConfiguration.body[1]) {
const body = data.actionConfiguration.body[1];
if (typeof data.actionConfiguration.body === "object") {
action = {
...data,
actionConfiguration: {
...data.actionConfiguration,
body: JSON.stringify(body),
},
};
}
}
} else if (displayFormat.value === POST_BODY_FORMAT_OPTIONS[2].value) {
if (data.actionConfiguration.body && data.actionConfiguration.body[2]) {
const body = data.actionConfiguration.body[2];
action = {
...data,
actionConfiguration: {
...data.actionConfiguration,
body,
},
};
}
}
}
2019-12-23 12:12:58 +00:00
return action;
};