in src/routes/Plugin/PluginRuleHandle/ResponseRuleHandle.js [74:128]
componentDidMount() {
const { value } = this.props;
const { headers, body } = this.state;
if (value) {
const data = {};
try {
Object.assign(data, JSON.parse(value));
} catch (e) {
// eslint-disable-next-line no-console
console.error(e);
}
const headerData = [];
const bodyData = [];
const statusCodeData = [
{ id: (+new Date() + 1).toString(), type: "statusCode" },
];
const draftData = [];
Object.keys(data).forEach((type) => {
if (Array.isArray(data[type])) {
data[type].forEach((item) => {
if (typeof item === "string") {
draftData.push({ type, key: item });
} else {
draftData.push({ type, ...item });
}
});
}
if (Object.prototype.toString.call(data[type]) === "[object Object]") {
Object.keys(data[type]).forEach((key) => {
draftData.push({ type, key, value: data[type][key] });
});
}
if (typeof data[type] === "number") {
statusCodeData[0].code = data[type];
}
});
draftData.forEach((item, i) => {
if (TypeKey.headers.includes(item.type)) {
headerData.push({
...item,
id: i.toString(),
});
}
if (TypeKey.body.includes(item.type)) {
bodyData.push({ ...item, id: i.toString() });
}
});
this.setState({
headers: headerData.concat(headers),
body: bodyData.concat(body),
statusCode: statusCodeData,
});
}
}