ice.fo.utils
Version:
42 lines (36 loc) • 958 B
JavaScript
export default async function addLastChildrenFoInstance({
$axios, parentId, componentId, props,
}) {
const [{ data: newData }, { data: parentData }] = await Promise.all([
$axios.request({
url: '/adm/foInstance/save',
method: 'post',
data: {
component: componentId,
props,
layout: null,
},
}),
$axios.request({
url: '/adm/foInstance/read',
params: {
id: parentId,
},
}),
]);
const newInstance = newData.item;
const parentInstance = parentData.item;
const newInstanceId = newInstance.id;
const parentChildrenIds = (parentInstance.instances || []).map((i) => i.id);
// add/push new instance to last children
parentChildrenIds.push(newInstanceId);
await $axios.request({
url: '/adm/foInstance/save',
method: 'post',
data: {
instanceId: parentId,
instances: parentChildrenIds.join(','),
},
});
return newInstance;
}