UNPKG

@openinc/parse-server-opendash

Version:
55 lines (54 loc) 2.13 kB
"use strict"; 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.Maintenance_Schedule_Template, async (request) => { const { object, original, user } = request; await (0, __1.defaultHandler)(request); await (0, __1.defaultAclHandler)(request); }); (0, __1.afterSaveHook)(types_1.Maintenance_Schedule_Template, async (request) => { const { object, original, user } = request; if (object) await createSchedulesWithTemplate(object); }); (0, __1.beforeDeleteHook)(types_1.Maintenance_Schedule_Template, async (request) => { const { object, original, user } = request; }); (0, __1.afterDeleteHook)(types_1.Maintenance_Schedule_Template, async (request) => { const { object, original, user } = request; }); } /** * Creates schedules based on the provided template. * @param template the maintenance schedule template */ async function createSchedulesWithTemplate(template) { // find existing schedules based on the template const matchingSchedules = await new Parse.Query(types_1.Maintenance_Schedule) .equalTo("template", template) .include("source") .findAll({ useMasterKey: true }); const sourcesInRelation = await template .relation("sources") .query() .findAll({ useMasterKey: true }); for (const source of sourcesInRelation) { if (matchingSchedules.some((s) => s.get("source")?.id === source.id)) continue; const title = `${source.get("name")} - ${template.get("title")}`; const newSchedule = new types_1.Maintenance_Schedule({ title, template, source: source, description: template.get("description"), color: template.get("color"), cron: undefined, enabled: true, tenant: template.get("tenant"), }); await newSchedule.save(null, { useMasterKey: true }); } }