@openinc/parse-server-opendash
Version:
Parse Server Cloud Code for open.INC Stack.
53 lines (52 loc) • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.init = init;
const __1 = require("..");
const types_1 = require("../types");
async function init() {
(0, __1.beforeSaveHook)(types_1.BDE_Form, async (request) => {
const { object, original, user } = request;
const pages = object.get("entries");
const form = object.get("form");
const acl = object.getACL();
if (pages) {
const res = [];
for (const page of pages) {
try {
const fetchedPage = (await types_1.BDE_Page.createWithoutData(page).fetch({ useMasterKey: true }));
res.push(fetchedPage);
}
catch (error) {
console.error("Could not load BDE_Page", error);
}
}
Object.keys(form).forEach((key) => {
if (key.startsWith("step")) {
delete form[key];
}
});
if (form.next) {
delete form.next;
}
object.set("form", {});
let sCount = 1;
const newEntries = [];
res.forEach((element, idx) => {
newEntries.push(pages[idx]);
form["step" + sCount++] = element.get("data");
if (idx < res.length - 1) {
form["step" + (sCount - 1)].next = "step" + sCount;
}
});
request.context.pages = res;
object.set("entries", newEntries);
object.set("form", form);
}
});
(0, __1.afterSaveHook)(types_1.BDE_Form, async (request) => {
const { object, original, user } = request;
for (const page of request.context.pages) {
page.save(null, { useMasterKey: true });
}
});
}